问题描述
|
我有一个场地表和一个区域表,其中一个场地属于一个区域,一个区域有许多场地。
查看区域显示页面时如何显示属于该区域的所有场地?
我认为这可以工作:
区域show.html.erb:
<%= area.venue.name %>,or
<%= area.venue.name,:collection => @area.venues %>
路线:
resources :areas,:has_many => :venues
但是它会给出\“未定义的局部变量或方法'area \'\”错误或语法错误。
我对任何编程和Rails都是陌生的,我做错了什么?
另外,我已经设置了一个场地部分,但是正在我的应用程序的另一部分中显示它,我希望列出的场地名称不使用局部。
非常感谢您提供的任何帮助!
解决方法
首先,您能告诉我们您的
areas_controller.rb
文件吗?
在您的视图内部,您可以执行以下操作:
<% @area.venues.each do |venue| %>
<%= venue.name %>
# etc.
<% end %>
这意味着在您的Areas控制器内部,您有一个实例化@area实例变量的show
动作。
就像是:
def show
@area = Area.find(params[:id])
end
顺便说一句,不要将模型关系放入route.rb文件中!您需要将它们放入模型中。
Area.rb
class Area < ActiveRecord::Base
has_many :venues
end
地点
class Venue < ActiveRecord::Base
belongs_to :area
end