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