通过Ruby-on-Rails上的form_-tag-post传递对象
我对rails比较陌生。我使用一个类似于ui组件的分部函数来调用某些控制器。这里是我在shared/post_button.html.erb中的一些东西,我在渲染部分时传入参数,比如控制器和动作或路径通过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 =>
<%
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%>
在这里,您迭代值散列中的每个键/值对,以将它们作为单个参数提交