Rails 4 - Передача Params через link_to?
У меня есть одна форма - в зависимости от того, какая ссылка пользователь нажимает, чтобы отобразить форму, я хочу, чтобы разные скрытые параметры были переданы в запись и сохранены при отправке. Есть ли хороший способ сделать это? Спасибо заранее!
Например:
<%= link_to 'General Request', new_request_path %>
<%= link_to 'Project Request', new_request_path %> ### -> set request.project = true
<%= link_to 'Administrative Request', new_request_path %> ### -> set request.admin = true
Ответы
Ответ 1
Для ваших примеров вы должны использовать:
<%= link_to 'Project Request', new_request_path(project: true) %>
который создаст ссылку типа http://127.0.0.1:3000/request?project=true
и
<%= link_to 'Administrative Request', new_request_path(admin: true) %>
который создаст ссылку типа http://127.0.0.1:3000/request?admin=true
Ответ 2
Я думаю, что есть два способа выполнить то, что вы пытаетесь сделать.
-
Создайте 3 разных маршрута для выполнения различных типов запросов. Например, new_request_path
, new_project_request_path
, new_admin_request_path
.
-
Если вы запрашиваете новый проект, используйте <%= link_to 'Project Request', new_request_path(:request_type => 'project') %>
. В контроллере вы можете обрабатывать разные типы запросов, такие как.
def new
case params[:request_type]
when 'general'
do_something
when 'project'
do_something_1
when 'admin'
do_something_else
end
...
end