Gab*_*e M 3 ruby-on-rails ruby-on-rails-3
我已经尝试过其他几个类似的帖子,但我仍然收到错误.
在Posts模型中,我有一个category_id字段.我有以下型号:
#Posts model
belongs_to :categories
#Category model
has_many :posts
Run Code Online (Sandbox Code Playgroud)
在Posts索引控制器中,我有:
@categories = @posts.Category.find(:all, :order => 'categoryname')
Run Code Online (Sandbox Code Playgroud)
在视图我有:
<% @posts.each do |post| %>
<tr>
<td><%= post.category_id %></td>
<td><%= @categories.categoryname %></td>
<td><%= link_to 'View', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在第二列中,我尝试显示Category表中的类别名称("categoryname"),而不是posts表中的category_id.我收到一个错误:
#ActiveRecord :: Relation:0x3e1a9b0>的未定义方法`Category'
我也尝试过:
<td><%= post.categories.categoryname %></td>
Run Code Online (Sandbox Code Playgroud)
但得到同样的错误.
以及:
<td><%= post.category.categoryname %></td>
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
Nic*_*gan 11
在你的模型中
belongs_to :category
Run Code Online (Sandbox Code Playgroud)
在你看来
<td><%= post.category.categoryname %></td>
Run Code Online (Sandbox Code Playgroud)
您可以摆脱@categories =控制器中的线路
此外,categoryname可能不是Category模型的最佳属性名称.为什么不命名呢name.post.category.name看起来好多了post.category.categoryname,你不觉得吗?