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 回答