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来提交表单。
- 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 %>
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来提交表单。
- 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 %>