通过Ruby-on-Rails上的form_-tag-post传递对象

通过Ruby-on-Rails上的form_-tag-post传递对象,ruby-on-rails,ruby,ruby-on-rails-3,forms,Ruby On Rails,Ruby,Ruby On Rails 3,Forms,我对rails比较陌生。我使用一个类似于ui组件的分部函数来调用某些控制器。这里是我在shared/post_button.html.erb中的一些东西,我在渲染部分时传入参数,比如控制器和动作或路径 <% path = "" if !path action = "" if !action controller = "" if !controller values = {} if !values %> <%= form_tag(path, :controller =>

我对rails比较陌生。我使用一个类似于ui组件的分部函数来调用某些控制器。这里是我在shared/post_button.html.erb中的一些东西,我在渲染部分时传入参数,比如控制器和动作或路径

<%
path = "" if !path 
action = "" if !action 
controller = "" if !controller 
values = {} if !values
%>
<%= form_tag(path, :controller => controller, :action => action, :method => "post") do %>
    <%= hidden_field_tag(:values, values) %>
    <%= submit_tag label %>
<% end %>

控制器,:action=>action,:method=>“post”)do%>
我使用这种方式通过POST使用表单(而不是传递变量的链接)调用某些控制器,因为我认为这是将某些记录发布到DB的更安全的方式。欢迎评论让我知道是否有更好的方法或语法来做这件事


现在,我的问题是:我在这里要做的是能够传入一个
对象,该对象包含我希望在控制器端接收的各种值。目前,values标签似乎不起作用。如何将对象/值传递给控制器?我需要将其附加到URL吗?我使用此部分的方式,有时不传入url,也不传入控制器和操作变量,那么我该如何传递值呢?

您正在寻找类似的内容吗

<%= form_tag(path, :controller => controller, :action => action, :method => "post") do %>
    <% values.each_pair do |k,v| %>
      <%= hidden_field_tag(k, v) %>
    <% end %>
    <%= submit_tag label %>
<% end %>
controller,:action=>action,:method=>“post”)do%>

在这里,您迭代值散列中的每个键/值对,以将它们作为单独的参数提交。

您正在寻找类似的内容吗

<%= form_tag(path, :controller => controller, :action => action, :method => "post") do %>
    <% values.each_pair do |k,v| %>
      <%= hidden_field_tag(k, v) %>
    <% end %>
    <%= submit_tag label %>
<% end %>
controller,:action=>action,:method=>“post”)do%>
在这里,您迭代值散列中的每个键/值对,以将它们作为单个参数提交