Как включить current_user в параметры выбора, но сопоставить его имя со словом «я»?
Пользователь может назначать задачи другим пользователям через раскрывающийся список выбора, но если другой пользователь не выбран,Задача должна быть назначена этому пользователю.В настоящее время я создаю это с помощью обычного тега select с моим собственным помощником для параметров:
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 paramприсутствует и установите его в current_user, если нет.Я знаю, брутто, и это становится запахом.
Итак, я хотел бы включить current_user в user_select, но сопоставить их user.name как «я».Любые идеи?
(Я смотрел в options_for_select и collection_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
вручную создайте «я» и вставьте первые работы на данный момент.