2011-09-13 42 views
1

我對rails比較陌生。我正在使用像UI組件一樣的部分來調用某些控制器。這裏是我在shared/post_button.html.erb中的內容,並且在渲染局部時傳入參數,如控制器和動作或路徑。通過form_tag傳遞一個對象post Ruby on Rails

<% 
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 %> 

我使用這種方式來調用通過POST使用形式(而不是路過的link_to變量)某些控制器,因爲我想這是對DB發佈某些記錄的更安全的方式。歡迎留言,讓我知道是否有更好的方法或語法去做這件事。

現在,我的問題是:我在這裏要做的是有能力通過一個values對象,包含我想在控制器端收到的各種值。目前,值標籤似乎不起作用。我如何着手將對象/值傳遞給控制器​​?我需要將它附加到URL嗎?我使用這個部分的方式,我有時不傳入URL並傳入一個控制器和動作變量,那麼我將如何去傳遞值呢?

回答

1

你在找這樣的事嗎?

<%= 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 %> 

當你迭代在你的各鍵/值對哈希上交的各個參數。

+0

是的,有道理。謝謝! – alik

相關問題