こんにちは、カスタムの国リストを使用しているアプリがあります。一部のクラスでは機能しますが、他のクラスでは機能しません..
例えば..
このクラスの場合:
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 の未定義のメソッド `name' が発生します
私がに変更した場合
<% @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