Rails为实例变量增加了价值

时间:2011-09-28 03:20:18

标签: ruby-on-rails instance-variables

我对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

由于

1 个答案:

答案 0 :(得分:1)

你应该使用协会,他们会很容易。

在Performer模型中,您应该有belongs_to :genre行。

在你的流派模型中,你应该有has_many :performers行。

现在,在您的代码中,您可以使用以下命令访问类型的名称:(假设您已经拥有@performer

@performer.genre.genre_name

我希望这有助于您走上正轨!