无法访问以rails形式传递给控制器​​的hidden_​​field_tag值

时间:2013-04-02 19:57:37

标签: ruby-on-rails

我有一个Rails应用程序,它有两个主要视图:概述和顺序视图。用户可以在任一视图中输入数据。我对两个视图使用相同的表单助手,但我希望create action中的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”=&gt;“{:value =&gt; \”sequence \“}”所表示的值。

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

1 个答案:

答案 0 :(得分:4)

请勿使用:value => track编写,而应执行:

  <%= hidden_field_tag :track, track %>

并使用params[:track]

进行访问