如何使用正确的密钥将参数传递给控制器

时间:2016-06-10 22:13:57

标签: ruby-on-rails ruby

我试图弄清楚如何让控制器端的商店 id 删除商店。

目前使用此代码,我在控制器端的参数将store.id(1)作为键格式发送。我需要通过store_id:来检索此内容。

{..."controller"=>"home", "action"=>"delete_store", "format"=>"1"}

我需要什么:

{..."controller"=>"home", "action"=>"delete_store", "store_id"=>"1"}

HTML / ERB:

<h4>Your Stores:</h4>
  <% @my_stores.each do |store| %>
    <p><%= store.name %><%= link_to "X", delete_store_path(store.id), method: :delete %></p>
  <% end %>

控制器:

class HomeController < ApplicationController
...
  def delete_store
    # With current code, I would have to do
    # current_user.stores.where(store_id: params[:format] )
    # But to make it proper I need this
    # current_user.stores.where(store_id: params[:store_id] )
  end
end

1 个答案:

答案 0 :(得分:1)

您可以使用hidden_field_tag

在参数中找到它
<%= hidden_field_tag :store_id, store.id %>

这应该允许你进行如下查找:

params[:store_id]

这是apidock的链接,适用于想要hidden_field_tag更多信息的人。 http://apidock.com/rails/ActionView/Helpers/FormTagHelper/hidden_field_tag