Ruby on rails Rails是否有一个属于索引中的显示字段?
我有两种型号:季节型和类别型。我想在季节索引视图中显示类别名称Ruby on rails Rails是否有一个属于索引中的显示字段?,ruby-on-rails,belongs-to,has-one,Ruby On Rails,Belongs To,Has One,我有两种型号:季节型和类别型。我想在季节索引视图中显示类别名称 class Season < ActiveRecord::Base attr_accessible :nb_down, :nb_up, :name, :category_id has_one :category accepts_nested_attributes_for :category end class Category < ActiveRecord::Base attr_accessible :
class Season < ActiveRecord::Base
attr_accessible :nb_down, :nb_up, :name, :category_id
has_one :category
accepts_nested_attributes_for :category
end
class Category < ActiveRecord::Base
attr_accessible :color, :name
belongs_to :season
end
classseasure
在我的季节表中,我向季节添加了一个类别,如下所示:
<%= f.collection_select :category_id, Category.all,:id,:name %>
在我的季节索引视图中,我想显示所有季节列和类别名称。我正在显示id cat,正在执行以下操作:
<% @seasons.each do |season| %>
<tr>
<td><%= link_to season.id, season_path(season) %></td>
<td><%= season.name %></td>
<td><%= season.nb_up %></td>
<td><%= season.nb_down %></td>
<td><%= season.category_id %></td>
(...)
(...)
我想显示类别名称,而不是id。我尝试执行“season.category.name”,但不起作用。请问我的错在哪里
谢谢:)
[编辑]:我创建了一个迁移,以在类别中添加季节id,并在季节类中将我的“has_one”替换为“belishing_to”,它可以工作:我可以在季节索引视图中显示类别名称。创建迁移
class Season < ActiveRecord::Base
attr_accessible :nb_down, :nb_up, :name, :category_id
has_one :category
accepts_nested_attributes_for :category
end
class Category < ActiveRecord::Base
attr_accessible :color, :name
belongs_to :season
end
并在catogeries表中添加“会话id”列
在终端的项目根目录中运行此命令
rails generate migration add_column_Session_id_to_categories session_id:integer
这将创建迁移,现在运行此命令
rake db:migrate
这就是你所做的也许问题是你写的是
saison
而不是seasure
?不,现在是seasure(抱歉出错),我编辑了它sorry@John当我尝试season.category.name时,当您尝试执行
时,您的错误是什么,有以下错误:SQLite3::SQLException:没有这样的列:categories.season\u id:从“categories”中的“categories”中选择“categories”。“season\u id”=1 LIMIT 1这表示在categories
表中没有列categories.season\u id
。我相信您需要做的是将seasure\u id
添加到您的categories
表中。另外,您确定关联设置正确吗?一个seasure
可以没有很多类别吗?Thanx对于你的答案,我会按季节替换session,但是当我试图显示seasure.category.name“nil:NilClass的未定义方法'name'时出现了一个新的错误”回答得很好,尽管我对@John说这是他需要做的。你比我更需要分数@约翰把这句话换成了我在季课上用“属于”替换的“has_one”,这句话很管用@约翰,我认为赛季只有一个类别,而不是一个类别只有一个赛季。那么你的目的是什么??