关于rails中ruby中的simple_form有一个问题
我想创建一个表单。
我有两个模型:车辆,维修。
<%= 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
我有一个输入区域来搜索车辆编号,但该值将是车辆编号。
表格=&gt;车辆号[_____]&lt; =输入vehicle.no,但我想提出关于车辆id的值。
> Updated
这是上面的表格。
当我输入车辆编号的部分时,可能会出现一些要选择的车辆编号。(搜索部分)
如果我选择XXX-112,并根据以下数据表,我可以得到值id = 2来提交表格。
id no
1 XXX-111
2 XXX-112
3 XXX-332
。
。
。
100 XXX-222
我怎样才能实现这个目标? 它使用了一些AJAX函数吗?
我想使用搜索方法,因为我有很多车辆数据......
对于清除问题的英语技能感到抱歉.....: - (
答案 0 :(得分:1)
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,将选择框转换为自动完成元素。然后将input_html: {class: "select2"}
添加到上面的f.input行以使用它。
答案 1 :(得分:0)
<%= simple_form_for @repair do |f| %>
<%= f.collection_select :vehicle_id, Vehicle.all, :id, :no %>
<%= f.submit %>
<% end %>