您好我有一个应用程序,即时通讯使用自定义国家/地区列表,它适用于某些类,但其他人没有..
例如......
对于这堂课:
class Club < ActiveRecord::Base
attr_accessible :name, :division, :from, :to, :country_id
belongs_to :player
belongs_to :country
DIVISION = %w{
first_division
second_division
third_division
amateur_division
}
YEARS = (1950..(Time.now.strftime('%Y')).to_i).to_a
end
我在视图中使用时工作正常
<% @player.clubs.each do |club| %>
<% if club.name.present? %>
<p>
<%= t 'activerecord.attributes.club.name' %> :
<%= club.name %><br />
<%= t 'activerecord.attributes.club.country' %> :
<%= club.country.name %><br />
<%= t 'activerecord.attributes.club.division' %> :
<%= t "generales.#{club.division}" if club.division.present? %><br />
<%= t 'activerecord.attributes.club.from' %>
<%= club.from %>
<%= t 'activerecord.attributes.club.to' %>
<%= club.to %>
</p>
<% end %>
<% end %>
但对于这个简单的课程
class Citizen < ActiveRecord::Base
attr_accessible :country_id
belongs_to :player
belongs_to :country
end
我在视图中有这个
<% @player.citizens.each do |citizen| %>
<%= t('generales.citizen') %> :
<%= citizen.country.name %>
<% end %>
这导致nil的未定义方法`name':NilClass
如果我改为
<% @player.citizens.each do |citizen| %>
<%= t('generales.citizen') %> :
<%= citizen %>
<% end %>
然后我得到了
#<Citizen:0x007f8511dd8978>
如果我试试这个
<%= citizen.country_id %>
我回复存储的Country_id,我怎么能回应这个id作为国名?感谢
任何人都能说出我做错了什么吗?
这是Country.rb模型
class Country < ActiveRecord::Base
attr_accessible :iso, :name, :printable_name, :iso3, :numcode
end
答案 0 :(得分:1)
要根据您的citizen
模型获取国家/地区名称,公民属于country
,国家/地区模型国家/地区应具有name
,因此您只需使用{{1}即可显示国家/地区名称看下面
<%=citizen.country.name%>