Ruby on rails Rails属于\u to-相关模型的选择字段

Ruby on rails Rails属于\u to-相关模型的选择字段,ruby-on-rails,belongs-to,Ruby On Rails,Belongs To,我是Rails的新手,正在寻找通往Rails的道路 现在我正在寻找在表单中使用相关模型中的值的方法。例如,我创建了两个具有*has_one*关系的模型。主表产品有一个字段unit_id-来自相关表单位的项目id 澄清:模型产品中的项目具有属性单位。一个产品有一个属性单元。模型单元中的项目是唯一的,一个项目单元可能属于产品中的多个项目 在我的表单中,我想为新产品选择unit,我可以为unitsindex打开表单,但如何在调用方表单中返回和使用所选项目 代码块: 一,。模型产品: 二,。模型单元:它

我是Rails的新手,正在寻找通往Rails的道路

现在我正在寻找在表单中使用相关模型中的值的方法。例如,我创建了两个具有*has_one*关系的模型。主表产品有一个字段unit_id-来自相关表单位的项目id

澄清:模型产品中的项目具有属性单位。一个产品有一个属性单元。模型单元中的项目是唯一的,一个项目单元可能属于产品中的多个项目

在我的表单中,我想为新产品选择unit,我可以为unitsindex打开表单,但如何在调用方表单中返回和使用所选项目

代码块:

一,。模型产品:

二,。模型单元:它没有代码

class Unit < ActiveRecord::Base
end
三,。用于请求相关表单的模板:

四,。带有单位索引的表单模板,我想从中进行选择:

我的问题是:我必须怎么做?如何从“单位”表返回和使用所选项目

对我的英语很抱歉。 P.P.S.我有一些示例图像,但没有在我的问题中包含它们的声誉:


我将为您提供3种不同的选择:

1-最好的解决方案是在您的表格中列出单元列表,并在其中进行选择。更易于实施,为用户提供更好的体验

2-在表单产品\u form.unit\u id中添加一个隐藏的\u字段。然后,您可以使用来显示单位并向其添加javascript,当用户单击某个单位时,它将关闭灯箱,并使用单位id更新隐藏的\u字段值


3-在units页面中添加指向units的链接,该链接将重定向到表单页面,并传递unit\u id参数,然后在控制器中执行如下操作:@product.unit=unit.findparams[unit\u id]if params[unit\u id].present?。但是这样会丢失以前更改的数据,这肯定不是一个好的解决方案

谢谢!方法1和2不适合我,因为它会将所有单元模型加载到主窗体。如果单位数不多,那就好了。现在我将尝试第三种方法。
class Unit < ActiveRecord::Base
end
<%= form_for(@product) do |product_form| %>
  ...
  <%= product_form.label :"#{t('unit')}:"%>
  <%= link_to t('unit_select'), units_path%>
  ...
 <div class="actions">
  <%= product_form.submit %>
 </div>
<% end %>
<%@units.each do |unit|%>
 <a href="<%=units_path%>">
  <div>
   <%= unit.shortname %>
   <%= unit.fullname %>
   <%= unit.okei %>
  </div>
 </a>
<%end%>