根据用户选择的提交(submit)
按钮(Cat
和Dog
在此例中),我想使用正确的HTTP动词将表单提交到正确的控制器操作。
在这种情况下,有一个文本输入框。如果用户按下Cat
,我想POST
到Cats#create
,如果按下Dog
,则PUT
到Dogs#update
。
我该如何构建这个表单?
编辑
使用formaction
属性,我可以将PUT
请求发送到Dogs#update
<%= form_for(cat) do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit "Cat" %>
<%= f.submit "Dog", formaction: dog_path(Dog.first) %>
<%#= f.submit "Cat", name: 'route_to[cat]' %>
<%#= f.submit "Dog", name: 'route_to[dog]' %>
</div>
<% end %>
问题是我想要使用
formaction
来POST
到Dogs#create
,这是可能的吗?
编辑
有一个railscast视频讲解如何根据按钮名称构建控制器逻辑。但是我想要将关于HTTP动词、控制器和操作的逻辑放在提交按钮本身。这是否可能?