0

私は2つのクラスを持っています -pop_vlansそして次のようにlogical_interfaces定義されています:

logical_interface.rb

class LogicalInterface < ActiveRecord::Base
  has_many :pop_vlans
end

pop_vlans.rb

class PopVlan < ActiveRecord::Base
  self.table_name = 'pop_vlans'
  belongs_to :logical_interface, :class_name => "LogicalInterface", :foreign_key => "vlan_id"
end

次に、コントローラーで関連オブジェクトのpop_id列にアクセスしようとしていますが、未定義のエラーが発生します:pop_vlans

logical_interface_controller.rb

def update
  if params[:id]
    @logical_interface = LogicalInterface.find(params[:id]) 

     @pop_id = @logical_interface.pop_vlan.pop_id # error
  end
end

ただし、必要なプロパティを取得できますが、いくつかの追加行が必要です。

@vlan_id = @logical_interface.vlan_id

@pop_vlan = PopVlan.find(@vlan_id) 

@pop_id = @pop_vlan.pop_id

しかし、私は自分のスクリプトをもう少し簡潔にしたいと思っています (さらに、上記の方法が機能しない理由と、それが本当に私を悩ませている理由を見つけてください!)。

4

1 に答える 1