2012-03-08 5 views
0

私は私のゲーム/ show.html.erbクラスでsubmit_tagを書かれていると、以下のようにそれがある:私のgames_controller非応答submit_tag

<% form_tag game_path, :method => 'submit' do %> 
     <div class="actions"><%= submit_tag "Interested in trading", :name => 'confirm' %></div> 
<% end %> 

私は、次のしているshow法の下で:

def show 
@game = Game.find(params[:id]) 


if params['confirm'] 
    respond_to do |format| 
    user = @game.user 
    email = user.email 
    g = GameTrade.game_interest(user) 
    g.deliver 
    format.html { redirect_to root_url } 
    format.json { render json: @game } 
    end 
elsif 
    respond_to do |format| 
    format.html 
    end 
end 
end 

表示ページはうまく表示されますが、submit_tagをクリックすると何も起こりません。私はそれがクリックされて死んでいることを意味し、何もしません。ちょうどダミー。私のコントローラのロジックに何が間違っていますか?

答えて

1

問題はあなたのコントローラではなく、あなたのビューです。

送信タグはフォーム内にある必要があります。あなたがそれをクリックすると、彼らはフォームを提出します - フォームを含んでいないと、submitタグはまったく役に立たなくなります。

どこかにつながるボタンだけが必要な場合は、button_toをチェックしてください:送信タグと指定したアクションに向けたフォームが作成されます。

+0

です。したがって、上記のステートメントはフォームで囲まれます。それは単純な<​​%form_tag do%> ..... <% end %>でしょうか、それよりも大きな論理ですか? – user1222136

+0

ちょっと、上の記事を私が書き込んだものに更新しました(私の知る限り正しかったかどうかはわかりませんが)、ボタンは完全に消えました。 – user1222136

+0

ええ、それは正しい構文ではありません。あなたは望みます: '' '<%= form_tag ...%>' ''。イコールサインを必ず入力してください。そうでない場合、出力には表示されません。 – Veraticus

関連する問題