循环某些关联时遇到一些麻烦:
#=> member.rb
has_one :academic
#=> academic.rb
belongs_to :member
到目前为止,一切都很好。但是,当我遍历关联时,会得到:
undefined method 'each' for #<Academic:0x007fc98b2b7210>
这是我的观点(显示):
<% if [email protected]? %>
<% fields_academic = [:major, :second_major, :minor, :second_minor] %>
<h1>Academics</h1>
<% @member.academic.each do |academic| %>
<%= render 'database/shared/display', model_obj: academic, data: academic, fields: fields_academic %>
<% end %>
<% end %>
代码被卡在each
方法上。
@member
被定义为 = Member.find(params[:id])
任何帮助将不胜感激。先感谢您!
根据您的代码,不存在academic
与给定相关的多个实例member
(它是使用has_one
Relationship定义的)。
答案是:您无法循环播放它们。
您的视图的正确代码应为:
<% if @member.academic.present? %>
<% fields_academic = [:major, :second_major, :minor, :second_minor] %>
<h1>Academics</h1>
<%= render 'database/shared/display', model_obj: @memeber.academic, data: academic, fields: fields_academic %>
<% end %>
<% end %>
如果您的目的是招募许多学者作为会员,请has_many
改用。
class Member
has_many :academics
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句