4

私はRORを初めて使用しますが、この問題に直面しています:私が持っているインデックスページで

<%= button_to 'Yes', { :action => 'vote', :id => poll.id, :user_answer => 'yes' }, :method => :post  %>

ユーザーが「はいボタン」を押すと、コントローラーに渡された URL には、ユーザーに対して明示的にすべてのパラメーターが含まれます。

vote?id=1&user_answer=yes

routes.rb には次のものがあります。

match 'vote' => 'polls#vote', :via => :post 

どんな助けでも大歓迎です

編集: index.html.erb 全体

投票

 <% @polls.each do |poll| %>
   <p>
   <%= poll.question %>?
   <%= button_to 'Yes', { :action => 'vote', :id => poll.id, :user_answer => 'yes' }, :method => :post %> (<%= poll.yes %>) /
   <%= button_to 'No', { :action => 'vote', :id => poll.id, :user_answer => 'no' }, :method => :post %> (<%= poll.no %>)
   </p>
 <% end %>
4

1 に答える 1

0

button_to のデフォルトのメソッドは post であるため、他の動詞 (get、put) を使用する場合を除き、明示的に指定する必要はありません。

URL に追加されたパラメーターが気に入らない場合は、代わりにフォームを使用することをお勧めします。
または、フォーム ハッシュを button_to タグに追加するだけです。

<%= button_to 'Yes', { :action => 'vote', :id => poll.id, :user_answer => 'yes' }, :form => {:data_type => <your choice (html, json)> %>
于 2013-11-11T18:14:07.633 に答える