如何强制使用formtastic形式的方法?

时间:2011-01-05 20:15:50

标签: ruby-on-rails formtastic

我有类似

的东西
semantic_form_for @whatever, :url => whatever_url

生成一个from
method="post"

我需要它,我已经尝试过了:

semantic_form_for @whatever, :url => whatever_url, :html => {:method => "put"}

semantic_form_for @whatever, :url => whatever_url, :html => {:method => :put}

semantic_form_for @whatever, :url => whatever_url, :html_args => {:method => :put}

没有效果。有什么想法吗?

2 个答案:

答案 0 :(得分:13)

参见http://www.rubydoc.info/gems/formtastic/0.9.10/Formtastic/SemanticFormHelper 并尝试:

  <% semantic_form_for :whatever, @whatever :url => posts_path, :html => {:method => :put} do |f| %>
    ...
  <% end %>

答案 1 :(得分:7)

是否会生成一个看起来像这样的表单?

<form action="..." method="POST">
...

如果是这样,那么它可能仍在创建PUT请求。 Rails通过使用_method属性来确定POST,PUT或DELETE请求。验证这是否有效的最佳方法是检查日志以查看PUT请求是否正在通过。您还可以通过向表单添加隐藏属性来强制执行此操作:

<input type="hidden" name="_method" value="put" />