我有一张场地桌和一张桌子,一个场地属于一个区域,一个区域有很多场地。
当我查看区域显示页面时,如何显示属于某个区域的所有场所?
我认为这样可行:
区域show.html.erb:
<%= area.venue.name %>, or
<%= area.venue.name, :collection => @area.venues %>
路线:
resources :areas, :has_many => :venues
但是它给出了“未定义的局部变量或方法'区域'”错误或语法错误。
我对任何编程都很陌生,并且我做错了什么?
此外,我有一个部分设置的场地,但它显示在我的应用程序的另一部分,我只是喜欢列出的场地名称而不使用部分。
非常感谢任何帮助,非常感谢!
答案 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