我有字段b_id中的表B的外键到表B.现在我正在试图添加新的表A条目进行查看/控制。在窗体中,我有组合框(通过collection_select),其中列出了表B中的所有元素,这就是我打算在A的创建方法中获得A的新实例的b_id。带外键的表的CRUD
组合框的值是设置为所需B实例的ID。但是,如何将该值设置为ecreate方法中新的A对象的b_id字段?无论我尝试什么,它总是空的,当然,我得到了例外。
我有字段b_id中的表B的外键到表B.现在我正在试图添加新的表A条目进行查看/控制。在窗体中,我有组合框(通过collection_select),其中列出了表B中的所有元素,这就是我打算在A的创建方法中获得A的新实例的b_id。带外键的表的CRUD
组合框的值是设置为所需B实例的ID。但是,如何将该值设置为ecreate方法中新的A对象的b_id字段?无论我尝试什么,它总是空的,当然,我得到了例外。
我不知道我跟着你的问题了,但是那听起来像你可能想直接从PARAMS到新的一通ID对象的创建方法......是这样的:
a = A.create(:b_id => params[:b_id], ...)
这一切都取决于您在视图中命名组合框的内容。如果你可以粘贴你的视图的片段,那么这将有助于
根据评论更新。
纵观rails docs为collection_select
,它看起来像你不正确的数据传递到collection_select
是的,这正是我想要的。 Combobox是这样创建的: <%form_for(@opstina)do | f | %> ... <%= collection_select(:okrug,:id,@okrugs,:id,:naziv)%> Opstina的外键okrug_id为Okrug。但我无法获得所选的okrug_id。我试过类似params [:okrug_id]的东西,但它是零 – celicni 2010-01-08 02:17:26
尝试'collection_select(:opstina,:okrug_id,@okrugs,:id,:naziv)'或'f.collection_select(:okrug_id,@okrugs,:id, :naziv)' – 2010-01-08 03:15:12
谢谢!它的工作原理与 f.collection_select(:okrug_id,@okrugs,:ID,:naziv) 问题发生,因为我选择的标签看上去像这样 <选择的id = “okrug_id” NAME = “梁州[ID]”> 它应该看起来像这样 <选择的id = “opstina_okrug_id” NAME = “opstina [okrug_id]”> (错误ID) – celicni 2010-01-08 03:43:43