1

概要ビューとシーケンス ビューの 2 つのメイン ビューを持つ Rails アプリを使用しています。ユーザーはどちらのビューでもデータを入力できます。両方のビューに同じフォーム ヘルパーを使用していますが、create アクションの redirect_to でユーザーのコンテキストを尊重する必要があります。そこで、「track」という hidden_​​field_tag を渡します。

コントローラー内の「トラック」の値にアクセスできないようです。

フォームは次のとおりです。

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

そして、ビューの 1 つでそれを呼び出す場所は次のとおりです。

<%= 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 に答える