我見,我認爲以下select_tag:爲什麼select_tag只顯示一列?
<%= select_tag :users, options_from_collection_for_select(@users, 'id','firstname' , 'lastname') %></p></br>
我想顯示在select_tag名字和姓氏,但它總是在這種情況下顯示的第一個參數「ID」後名字。
我在做什麼錯了?
我見,我認爲以下select_tag:爲什麼select_tag只顯示一列?
<%= select_tag :users, options_from_collection_for_select(@users, 'id','firstname' , 'lastname') %></p></br>
我想顯示在select_tag名字和姓氏,但它總是在這種情況下顯示的第一個參數「ID」後名字。
我在做什麼錯了?
使用這個代替
<%= select(:users, :id, @users.map {|u| [u.firstname + " " + u.lastname,u.id]}) %>
我相信options_for_select只允許你把1)你希望每個選項的值,2)你想要的選項的id或標籤。
你要做的是,在你的用戶模型中,設置一個方法來連接用戶的名字和姓氏,然後用它作爲你的option_for_select id。
用戶模型
def userFullName
self.firstname+' '+self.lastname
end
然後用它在你的select_tag就象這樣:
<%= select_tag :users, options_from_collection_for_select(@users, 'id','userFullName') %>
從API文檔爲options_from_collection_for_select
,你可以得到這樣的:
options_from_collection_for_select(collection, value_method, text_method, selected = nil)
如果你只是想以顯示選項,這是做到這一點的正確方法。
如果您想要預先選擇一個選項,則只能指定第四個參數。
如果你想連接名稱,你可以這樣做,因爲奧斯卡瓦爾迪茲告訴你。爲options_from_collection_for_select
這裏
檢查的詳細信息:http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_from_collection_for_select
THX @all的幫助! – dot
很高興幫助:) –