В моей форме:Rails передать объект через форму выбора
<%= f.select :user, User.all %>
Это создает отборное с коллекцией всех пользователей.
Когда я ударил представить, что в настоящее время передачи объекта в виде строки, выглядит следующим образом:
[3] pry(#<PermissionFormsController>)> params[:permission_form][:user]
=> "John Doe <[email protected]> - Bar (something)"
и
[4] pry(#<PermissionFormsController>)> params[:permission_form][:user].class
=> String
Я хотел бы получить объект, а, как current_user
[5] pry(#<PermissionFormsController>)> current_user
=> Homer Simpson <[email protected]> - Foo (admin)
Категория объекта: User
:
[6] pry(#<PermissionFormsController>)> current_user.class
=> User(id: integer, status: string, ...)
Есть ли способ достичь этого?
это не сработает, потому что теперь 'params [: permission_form] [: user_id] =" John Doe <[email protected]> - Bar (что-то) "' как получить идентификатор? – neo
Кажется, вы определили '' to_param'' в своей модели '' User'', не так ли? Вы можете удалить это, если оно вам не понадобится, или вместо этого используйте этот код: '' <% = f.select: user_id, User.all.map {| u | [u.to_param, u.id]}%> '' – dgilperez
На самом деле у меня нет 'to_param' в моей модели User. – neo