如何在展示页面列出属于另一条记录的所有记录?

时间:2011-06-12 10:27:05

标签: ruby-on-rails activerecord

我有一张场地桌和一张桌子,一个场地属于一个区域,一个区域有很多场地。

当我查看区域显示页面时,如何显示属于某个区域的所有场所?

我认为这样可行:

区域show.html.erb:

<%= area.venue.name %>, or
<%= area.venue.name, :collection => @area.venues %>

路线:

resources :areas, :has_many => :venues

但是它给出了“未定义的局部变量或方法'区域'”错误或语法错误。

我对任何编程都很陌生,并且我做错了什么?

此外,我有一个部分设置的场地,但它显示在我的应用程序的另一部分,我只是喜欢列出的场地名称而不使用部分。

非常感谢任何帮助,非常感谢!

1 个答案:

答案 0 :(得分:3)

首先,您能告诉我们您的areas_controller.rb文件吗?

在您的视图中,您可以执行以下操作:

<% @area.venues.each do |venue| %>
  <%= venue.name %>
  # etc.
<% end %>

这意味着在您的区域控制器内,您有一个show动作来实例化@area实例变量。

类似的东西:

def show
  @area = Area.find(params[:id])
end

顺便说一句,不要把你的模型关系放在routes.rb文件中!你需要将它们放在模型中。

Area.rb

class Area < ActiveRecord::Base
  has_many :venues
end

Venue.rb

class Venue < ActiveRecord::Base
  belongs_to :area
end