1

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

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

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

4

4 回答 4

2

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

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

于 2013-07-31T08:34:58.113 回答
1

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

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

<%= simple_form_for @model do |f| %>
  ...
  <%= f.input :field_name, :as => :hidden, :input_html => { :value => params[:key] } %>
  <%= f.button :submit %>
<% end %>
于 2013-07-31T02:09:31.673 回答
1

您可以通过 传递信息hidden_field_tag。所以你的代码会是这样的:

<%= form_for @model do |f| %>
    <%= hidden_field_tag 'key', params[:key]
    # other form code
    <%= f.submit %>
<% end %>
于 2013-07-31T03:02:50.790 回答
1

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

<%= 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 %>
于 2013-07-31T03:46:24.720 回答