我有两个模型Circuit
和Organisation
,具有以下关系:
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
而不是我的页面渲染但我的下拉值是空的,值是你知道某些东西被破坏时得到的十六进制地址...
答案 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])