我有一个这样的网址http://example.com/myController?key=12345
在我的控制器myController
中,我可以使用params[:key]
访问键值,但是当我提交表单时,我想在create
方法中获取相同的键,但是params[:key]
为空。
如何在我的帖子params[:key]
中访问create
?
答案 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 %>