0
如何在select選項中包含current_user,但將其名稱映射爲「我」?在選擇字段的選項中將current_user.name映射爲「我」
用戶可以通過選擇下拉菜單爲其他用戶分配任務,但如果沒有選擇其他用戶,則該任務應分配給該用戶。我目前正在與一個正常的選擇標籤用我自己的幫手選項構建這樣的:
def user_select account
account.users.reject{|u| u == current_user }.map {|user| [user.name, user.id]}
end
,並在形式
= f.select :user_id, user_select(@account), { :include_blank => 'me' }
我檢查,看看是否:USER_ID參數是存在並設置如果不是,則將其發送給current_user。我知道,總之,這成了一種氣味。
所以,我想在user_select中包含current_user,但將他們的user.name映射爲「我」。有任何想法嗎? (我已經查看了options_for_select和collections_for_select,雖然兩者都允許你傳入默認值,但你不能真正設置值,或者,你可以默認選擇current_user,但我的方式是,現在做它將使用他們的實際名稱而不是「我」)。
編輯: 按fl00r的建議,我已經改變了user_select到:
def user_select account
me = ["me", current_user.id]
account.users.reject{|u| u == current_user }.map {|user| [user.name, user.id]}.insert(0, me)
end
手動創建的「我」,插入第一個作品了。
「我」(又名current_user)將始終屬於該帳戶。我只想在選擇選項中將他的user.name替換爲「我」。 – GoodGets
我認爲設置'我'變量,然後將其插入0將工作,雖然...不知道是否有更優雅的解決方案,雖然 – GoodGets
我編輯我的帖子,包括我的最終代碼。雖然我覺得它可能會被重構一些,但它很有用,規格可以通過,我很高興。謝謝你fl00r。 – GoodGets