私は初心者ですが、連想データのクエリがどのように機能するかについて頭を悩ませようとしています。これが私の単純なスキーマです:
create_table "microposts", :force => true do |t|
t.text "content"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "users", :force => true do |t|
t.string "name"
t.string "email"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
私の協会は次のとおりです。
class Micropost < ActiveRecord::Base
attr_accessible :content, :user_id
belongs_to :user
accepts_nested_attributes_for :user
end
class User < ActiveRecord::Base
attr_accessible :email, :name
has_many :microposts
accepts_nested_attributes_for :microposts
end
私がやろうとしているのは、ユーザーテーブルのユーザー名に対応する作成者属性が含まれるようにマイクロポストにクエリを実行することです。これが私のhtmlです:
<% @microposts.each do |micropost| %>
<tr>
<td><%= micropost.content %></td>
<td><%= micropost.user_id %></td>
<td>
**<%= micropost.author %>**
</td>
<td><%= link_to 'Show', micropost %></td>
<td><%= link_to 'Edit', edit_micropost_path(micropost) %></td>
<td><%= link_to 'Destroy', micropost, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
上記のセルの1つでmicroposts.authorのような属性を取得するにはどうすればよいですか?Microposts.users.nameにクエリを実行しようとしましたが、次のようなルビーオブジェクトデータが返されるようです。
[#<Micropost id: 1, content: "Though good for getting a general overview of Rails...", user_id: 2, created_at: "2012-09-02 01:52:47", updated_at: "2012-09-02 01:52:47">, #<Micropost id: 2, content: "This is another", user_id: 2, created_at: "2012-09-02 01:53:09", updated_at: "2012-09-02 01:53:09">, #<Micropost id: 3, content: "A close cousin of create_table is change_table,
さらに、データにはユーザー名データの記述が含まれていません。私は何が間違っているのですか?どうすればmicropost.author
仕事に取り掛かることができますか?