嗨,我有一个应用程序,我在其中使用自定义国家/地区列表,它适用于某些课程,但不适用于其他课程。
例如..
对于这个类:
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: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