0

我有两个模型,Circuit并且Organisation具有以下关系:

电路.rb

belongs_to :organisation

组织.rb

has_many :circuits

电路控制器.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 methodproduct_name' for "# AND id != ?":String`

据我所见,建模应该没问题,我唯一怀疑的是我在控制器中所做的链接,因为找到circuit, 它organisation和其他circuits属于 that似乎有点有趣organisation

Rails 版本是 2.3.14

或者,如果我使用

<%= select "circuit", "backup_circuit_id", @backup_circuits %>

取而代之的是我的页面呈现,但我的下拉值是空的,这些值是当你知道有东西坏了时你得到的十六进制地址......

4

1 回答 1

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])
于 2013-08-21T13:28:15.243 回答