我有一個事件類型事件的選擇框。事件屬於event_type,event_type有很多事件。下面是我對選擇框:如何在軌道上正確使用紅寶石選擇框?
<%= f.select :event_type, options_from_collection_for_select(EventType.all, :id, :name, @event.id), :placeholder => 'Select an event type' %>
但是,問題是,當我提交,其提交的事件類型的ID,而不是它的名稱。那麼,我將如何讓它提交名稱而不是ID?如果你需要看到更多的代碼,而不只是告訴我,謝謝
感謝您的幫助!我會在創建操作中加入selected_type嗎? – Snubber
selected_type實際上應該是你的事件的值之一,因爲你的事件應該知道它是什麼類型。它應該與event_type類有關係(分別使用'belongs_to'和'has_many'),所以你可以使用'@ event.event_type.id'來訪問它。如果這樣做了,那麼是的,在啓動事件對象或編輯時在創建動作中使用它。 – KappaNossi
如果關係設置正確,請使用下面的代碼片段使您的生活更輕鬆:'<%= f.select:event_type_id,@ event_types.map {| t | [t.name,t.id]}%>'。這應該在編輯時自動選擇正確的選項,並且還使您能夠使用'Event.create(params [:event])'創建對象,包括動作中的關係。儘管如此,您仍然可以使用我帖子中的信息手動執行此操作。 – KappaNossi