Rails如何从post动作中获取动作获取查询字符串?

时间:2013-07-31 02:07:28

标签: ruby-on-rails ruby-on-rails-3

我有一个这样的网址http://example.com/myController?key=12345

在我的控制器myController中,我可以使用params[:key]访问键值,但是当我提交表单时,我想在create方法中获取相同的键,但是params[:key]为空。

如何在我的帖子params[:key]中访问create

4 个答案:

答案 0 :(得分:2)

您可能确实添加了隐藏字段。

如果您发现自己添加了许多因为需要在越来越多的操作中使用该值,请考虑在会话中将其设置为(例如)session[:current_key]

答案 1 :(得分:1)

您可以向表单添加隐藏字段,并将其值设置为params[:key]。然后它将在您从表单中获得的参数中找到。

如果您使用的是简单表格:

<%= simple_form_for @model do |f| %>
  ...
  <%= f.input :field_name, :as => :hidden, :input_html => { :value => params[:key] } %>
  <%= f.button :submit %>
<% end %>

答案 2 :(得分:1)

您可以通过hidden_field_tag传递信息。所以你的代码就像:

<%= form_for @model do |f| %>
    <%= hidden_field_tag 'key', params[:key]
    # other form code
    <%= f.submit %>
<% end %>

答案 3 :(得分:1)

添加一个新的隐藏字段以通过params传递,当您提交表单时,您的操作被更改或再次调用params hash重新创建;您可以做的是通过隐藏字段传递值,如下所示,

<%= simple_form_for @model do |f| %>
  # your remaining form fields
  <%= f.input :field_name, as: :hidden, :input_html: { value: params[:key] } %>
  <%= f.button :submit %>
<% end %>