带帖子的form_tag有一个非常奇怪的行为

时间:2012-10-17 16:40:44

标签: ruby-on-rails database activerecord post get

我有一个非常奇怪的行为Rails 3.2。

我在haml页面中使用了form_tag:

= form_tag messages_path, :method => :get do

此表单包含一些复选框 这段代码工作正常。

但我不喜欢得到。

如果我用“post”替换“get”,那么真的很奇怪:

看起来控件转到我的“创建”方法,在我的数据库中创建一个nil对象,然后回到原始页面(这就是我告诉“创建”方法无论如何)。

然后,复选框搞砸了......

注意:我在会话中保存了复选框内容。 Dunno,如果真的很重要的话。

似乎“post”默认会让你“创建”?我可以改变吗? “得到”工作正常,但弄糟我的网址......

任何建议???

1 个答案:

答案 0 :(得分:2)

默认情况下,将请求映射到控制器的create方法。

如果您想使用发布请求,请在config / routes.rb

中添加以下代码
resources :messages do
  collection do
    post 'stuff'
  end
end

在消息控制器中

def stuff
  #your stuff goes here
end

然后表单构建器将

form_tag stuff_messages_path, :method => :post