11

我有一个表单 - 取决于用户单击哪个链接来显示表单,我希望将不同的隐藏参数传递给记录并在提交时保存。有没有很好的方法来做到这一点?提前致谢!

例如:

<%= 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
4

2 回答 2

9

对于您的示例,您将使用:

<%= 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

于 2013-07-17T18:18:19.253 回答
2

我认为有两种方法可以完成您正在尝试做的事情。

  1. 创建 3 个不同的路由来完成不同类型的请求。例如,new_request_pathnew_project_request_pathnew_admin_request_path

  2. 如果您正在请求新项目,请使用<%= 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
于 2013-07-17T18:20:48.190 回答