Ruby on rails 在html.erb中不起作用的关联
大家好,Ruby on rails 在html.erb中不起作用的关联,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,大家好, 电影和电影之间有一种通过放映的联系。电影模式是分开的,电影院是分开的。筛选将它们结合在一起。在电影模型中,一切似乎都能正常工作,并以循环方式显示它们 我想创建一个带有链接的cinema.name下拉列表,它会带您到那里。该协会必须作为不同电影院的一些电影存在 这是可能的,因为上面的代码对我不起作用 提前感谢 <ol class="noDots"> <% # @screening.cinema.each do |screening| %> <
电影和电影之间有一种通过放映的联系。电影模式是分开的,电影院是分开的。筛选将它们结合在一起。在电影模型中,一切似乎都能正常工作,并以循环方式显示它们 我想创建一个带有链接的cinema.name下拉列表,它会带您到那里。该协会必须作为不同电影院的一些电影存在 这是可能的,因为上面的代码对我不起作用 提前感谢
<ol class="noDots">
<% # @screening.cinema.each do |screening| %>
<li>
<h3><%= screening.cinema.name %></h3>
</li>
<% #end %>
</ol>
这行应该是
<h3><%= screening.cinema.name %></h3>
你可以将这个下拉框做成一个表单,旁边有一个提交按钮,将你带到那个页面…从我看到的屏幕有很多:电影院(不是电影院有很多:放映) 所以
请根据要点显示放映模式和影院模式
假定
<% @screening.cinema.each do |cinema| %>
<li>
<h3><%= cinema.name %></h3>
</li>
<% end %>
我认为你想要的是以下几点
class Screening
belongs_to :film
belongs_to :cinema.
.....
end
class Film
has_many :screenings
has_many :cinemas, :through => :screenings
end
class Cinema
has_many :screenings,
has_many :films, :through => screenings
end
假设您将@screenings设置为控制器中所需的屏幕子集。这应该会起作用,因为它在注释中对您的单个屏幕起作用 在控制器中 在视图中
听起来您好像遇到了很多“零对象”错误。仔细检查您的控制器,查看您在那里定义的哪些变量可以在视图中访问
例如,如果您正在设置@film,那么您可以通过如下方式遍历关联:
<% @screening.cinema.each do |s| %>
<li>
<h3><%= s.cinema.name %></h3>
</li>
<% end %>
如果您在抓取电影列表时希望加载电影名称,则还应能够按电影名称的字母顺序排列:
<% @film.screenings.each do |screening| %>
<li>
<h3><%= screening.cinema.name %></h3>
</li>
<% end %>
希望有帮助 在terminal run Rails c中,然后像在控制器中一样进行筛选,“screening=screening.find by_id(some_id)”,然后运行“y screening.cinema”,查看它是否返回一个结果或数组。你可能需要做'screening.cinema.first.name'@bookofgreg'screening.cinema.name'或'screening.cinema.first.name'会发生什么?未定义的方法'cinema'for nil:nilclass为了不让自己困惑,你可能想把| screening |改为| cinema Hi Norto23我尝试了这个方法,但我得到了以下错误:未定义的方法'cinema'零:第48行的零级。48:。@atbyrd,我也试过你的方法,但没有,整个代码看起来像这样。。。发布电影、放映和电影线5的模型可能会有所帮助,因为要点应该是Cinema.name,而不是Screening.name未定义方法“Cinema”for nil:nilclass这是正确的答案。您需要将@screening分配给控制器中的适当屏蔽。您有一个nil对象,但您没有预料到它!您可能期望数组的一个实例。计算nil.each时出错,没有控制器代码,模型代码我们都只是猜测。。你有这部电影,你想要一份所有放映这部电影的电影院的名单?或所有筛选的列表>。。假设你的电影模型中有很多电影放映,你会做一些类似@film.screenings.each do | screening |的事情。
@screening = Screening.find(some_id)
<% @screening.cinema.each do |s| %>
<li>
<h3><%= s.cinema.name %></h3>
</li>
<% end %>
<% @film.screenings.each do |screening| %>
<li>
<h3><%= screening.cinema.name %></h3>
</li>
<% end %>
<% @film.screenings.includes(:cinema).order("cinema.name ASC").each do |screening| %>
<li>
<h3><%= screening.cinema.name %></h3>
</li>
<% end %>