2011-01-30 8 views
0
<%= link_to "", { :controller => 'board', 
          :action => 'take_turn', 
          :id => @board.id, 
          :x => col, 
          :y => row }, :remote => true do %> 

が発生:なぜそれが正しい動作していないRuby on rails3:Link_to not working?

<a href="" action="take_turn" controller="board" id="15" x="0" y="1"> 
      <div class="ttt_square"> 
       &nbsp; 
      </div> 
</a> 

?生成する必要があります

答えて

1

あなたは右のあなたの表記とそれを得るために、括弧を追加する必要が定義されていることを確認する必要があります(動作するはずですどのような正しい引数であるかを理解することができません。 希望します。

3

これはブロックバージョンlink_toを使用しているためです。この場合の最初のパラメータは、空の文字列ではなく、URLである必要があります。

<%= link_to({:controller => 'board', 
         :action => 'take_turn', 
         :id => @board.id, 
         :x => col, 
         :y => row }, :remote => true) do %> 
    <div class="ttt_square"> 
      &nbsp; 
    </div> 
<% end %> 

そうでない場合:私は思う

+0

構文エラーが発生しました。予期しないtASSOCが発生しました。 e空文字列。 = \ – NullVoxPopuli

+1

'link_to'の引数を括弧で囲みます。 –

+0

あなたが 'link_to {...} do ...'をしていると、Rubyはハッシュ構文を使っているのか、ブロックの構文を使っているのか分かりません。 'link_to({...})do ... 'は、あなたがハッシュを渡すことを意味していることを理解するのに役立ちます。 –

2
<%= link_to board_take_turn_path(@board, :x => col, :y => row) , :remote => true do %> 
# Your code and stuff here 
<% end %> 

あなたはちょうどこのように、board_take_turn_pathが実際に

+0

私はリンク全体であるdivを持っているので、link_toのブロック版にする必要があります。 – NullVoxPopuli

+0

webdestroyaがブロック版を提供しています。あなたのコードの後ろにブロックに行きたいものを入れ、 '<% end %>'を付け加えれば、あなたは行くのがいいでしょう! –

+0

私の答えはより明確になるように更新しました。 –