1

我有一个 Rails 应用程序,它有两个主要视图:概览视图和序列视图。用户可以在任一视图中输入数据。我对两个视图都使用相同的表单助手,但我希望创建操作中的 redirect_to 尊重用户的上下文。所以我传递了一个名为“track”的 hidden_​​field_tag。

我似乎无法在我的控制器中访问“track”的值。

这是表格:

<%= form_for([@mission, @mission.stickies.build]) do |f| %>
<div class="field">
    <%= f.text_field :name, :size => 60 %>
    <%= f.hidden_field :kind, :value => kind %>
    <%= hidden_field_tag :track, :value => track %>
    <class="actions"> 
        <br><%= f.submit "Add to " + kind.pluralize.capitalize %>
        </div>
<% end %>

这就是我在其中一种观点中所说的:

<%= render :partial => "stickies/form" , :locals => { :kind => "driver", :track => 'main' } %>

这是参数转储(来自不同的调用):

{"utf8"=>"✓",
 "authenticity_token"=>"N3IXwNQosOfxw1ZcpfFPOLPKzHbvNyaBhAiP3ftT9GY=",
 "sticky"=>{"name"=>"Tesssksjd argghh.",
 "kind"=>"success"},
 "track"=>"{:value=>\"sequence\"}",
 "commit"=>"Add to Successes",
 "mission_id"=>"32"}

这是我的创建控制器中的相关代码:

if params[:track][:value] == "main" then
    redirect_to mission_path(@mission) + '#' + @sticky.kind.pluralize
    elsif params[:track][:value] == "sequence" then
    redirect_to mission_stickies_path(@mission, :kind => @sticky.kind)
end 

我似乎找不到语法、比较器或任何我需要访问由“track”=>“{:value=>\”sequence\“}”表示的值的东西。

任何帮助或指示将不胜感激。我是 Rails 和 Ruby 的新手,这是我的第一个应用程序。

4

1 回答 1

4

不要用 写它:value => track,而是这样做:

  <%= hidden_field_tag :track, track %>

并使用params[:track]

于 2013-04-02T20:02:15.647 回答