2015-10-14 52 views
1

在rails中有一個關於ruby中的simple_form的問題。
我想創建一個表單。
Ruby on Rails - 在表單中輸入一列並在窗體中插入另一列

我有兩個模型:車輛,修理。

<%= 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獲取車輛號碼。

我該怎麼做到這一點?

謝謝!

> Updated 

我有一個輸入區域搜索的車輛號碼,但該值將車輛ID。

Form => Vehicle No [_____] < =輸入vehicle.no,但我想將關於車輛ID的值。

> Updated 

This is the form 這是上面的形式。

enter image description here 當我在汽車數量的部分關鍵,它可能會出現一些車輛號碼作爲選件。(搜索部分)
enter image description here
如果讓我選擇XXX-112,並根據以下datatables,我可以得到值id = 2來提交表單。

  1. Vehicle_tables

ID NO
1 XXX-111
2 XXX-112
3 XXX-332



100 XXX-222

我怎麼能達到這個目標? 它使用了一些AJAX功能?

我想使用的搜索方法,因爲我有很多車輛數據...

很抱歉的英語技能clearify問題..... :-(

+0

我不明白你在問什麼。你能否重構你的問題,以防我不是唯一的問題?您是否正在尋找在維修表單中選擇現有的「車輛」? –

+0

我有一個輸入區域來搜索車輛號碼,但該值將是Vehicle id。 Form => Vehicle No [_____] <=輸入vehicle.no,但我想將關於車輛ID的值。 –

回答

1

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

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

這當然假定修復在其模型文件中有一條has_one :vehicle行。

這段代碼會做的是生成的所有標籤等於的選擇標記:沒有(我假設是格式爲XXX-1211),但選擇元素的值將是vehicle_id

現在,如果您創建一個新的修復,它將是一個下拉菜單,顯示@ vechicle.no,但在數據庫中存儲@ vechicle.id。

爲了能夠搜索,您需要一些額外的JavaScript庫,如select2,將選擇框變成自動完成元素。然後,您將input_html: {class: "select2"}添加到上面的f.input行以使用它。

+0

但是,如果我想首先進行搜索,然後將其中的價值放入其中,那我該如何處理? –

+0

@IanCheng我更新了我的答案 –

+0

@IanCheng,如果你能澄清*你希望如何「搜索」車輛號碼(如使用什麼機制?),我可以幫助解決這個問題。但默認情況下HTML 元素不允許搜索,所以我建議研究select2或類似的東西,並做一些事情,如我建議以上 –

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