Ruby on Rails - 表单输入一列并在表单中插入另一列

Ruby on Rails - form input a column and insert another column in the form

rails 中的 ruby 中有一个关于 simple_form 的问题。
我想创建一个表格。

我有两个模型:Vehicle、Repair。

 <%= simple_form_for(@repair) do |f| %>
   <div class="form-inputs">
     <%= f.input :vehicle_id, include_blank: true, label: 'Vehicle_no' %>
   </div>
 <% end %>

当我创建维修表格时,我想搜索@vehicle.no。
当我输入关于车辆编号的关键字时,例如:XXX-1211,然后我选择了我需要的那个,然后我可以用@vehicle.no 获得 id 以放置车辆编号。

我怎样才能做到这一点?

谢谢!

> Updated

我有一个用于搜索车辆编号的输入区域,但该值将是车辆 ID。

Form => Vehicle No [_____] <= 输入 vehicle.no,但我想输入有关车辆 ID 的值。

> Updated

这是上面的表格。

而当我输入车号部分时,会出现一些车号可供选择。(搜索部分)

如果我选择XXX-112,根据下面的数据表,我可以得到值id = 2来提交表单。

  1. Vehicle_tables

身份证号
1 XXX-111
2 XXX-112
3 XXX-332
.
.
.
100 XXX-222

我怎样才能实现这个目标? 它使用了一些 AJAX 功能?

我想使用搜索方法,因为我有很多车辆数据...

抱歉英语能力不好,无法解决问题..... :-(

https://github.com/plataformatec/simple_form#associations

<%= f.association :vehicle, label_method: :no, value_method: :id %>

这当然假设 Repair 在其模型文件中有 has_one :vehicle 行。

此代码将生成一个 select 标签,其中所有标签都等于 :no(我假设其格式为 XXX-1211),但 select 元素将是 vehicle_id

现在,如果您创建一个新的修复,它将是一个显示@vechicle.no但在数据库中存储@vechicle.id的下拉列表。

为了能够进行搜索,您需要一些额外的 javascript 库,例如 select2,它可以将 select 框转换为自动完成元素。然后你在上面的f.input行添加input_html: {class: "select2"}来使用它。

<%= simple_form_for @repair do |f| %>
    <%= f.collection_select :vehicle_id, Vehicle.all, :id, :no %>
    <%= f.submit %>
<% end %>