我对RoR非常陌生,在我的学习中遇到了障碍。 我创建了一个针对表演者数据库表的脚手架,该表具有与流派表的外键关系,作为表演者类型的查找表。
我正在尝试做的是使用针对genres表的find中当前执行者行的genre_id来提取类型名称。我在列表操作中按照需要工作,但我似乎无法弄清楚如何添加“genre_name”=> @genre [:genre_name]进入@performer实例变量,以便它传播到视图。
在我的列表操作中,我有以下代码,但显然做错了,如果有人能引导我,我会非常感激。
def list
@performer_pages, @performers = paginate :performers, :per_page => 10
@performers.each do |performer|
#logger.debug(performer[:genre_id])
@genre = Genre.find(performer[:genre_id], :select => 'genre_name')
@performers[performer[:id]][:genre_name] = @genre[:genre_name]
^-- THIS IS THE LINE I AM STUCK ON
end
logger.debug(@performers.inspect)
end
由于
答案 0 :(得分:1)
你应该使用协会,他们会很容易。
在Performer模型中,您应该有belongs_to :genre
行。
在你的流派模型中,你应该有has_many :performers
行。
现在,在您的代码中,您可以使用以下命令访问类型的名称:(假设您已经拥有@performer
)
@performer.genre.genre_name
我希望这有助于您走上正轨!