Rails Association Chains

时间:2013-08-21 12:00:04

标签: ruby-on-rails ruby ruby-on-rails-2

我有两个模型CircuitOrganisation,具有以下关系:

circuit.rb

belongs_to :organisation

organisation.rb

has_many :circuits

circuit_controller.rb

...
if params[:id]
  @circuit = Circuit.find(params[:id])
  @backup_circuits = @circuit.organisation.circuits.where('id != ?', @circuit.id)
end
...

update.rhtml(电路视图)

<%= collection_select 'circuit', 'backup_circuit_id', @backup_circuits, :id, :product_name %>

但我收到此错误:undefined method product_name'代表“#AND id!=?”:String`

据我所知,建模应该没问题,我唯一怀疑的是我在控制器中所做的链接,因为找到circuit似乎有点好笑,它是{{ 1}}然后属于organisation的其他circuits

Rails版本是2.3.14

或者,如果我使用

organisation

而不是我的页面渲染但我的下拉值是空的,值是你知道某些东西被破坏时得到的十六进制地址...

1 个答案:

答案 0 :(得分:1)

我不认为Rails 2.3.14支持.where() - 实际上它并不适用于Rails 2.3.11,只是尝试过它。

在Rails 2.3.14中,你无法真正链接查询......这是Rails 2.3.x解决方案:

@circuit.organisation.circuits.find(:all, :conditions => ['id != ?', @circuit.id])