我有一个非常奇怪的行为Rails 3.2。
我在haml页面中使用了form_tag:
= form_tag messages_path, :method => :get do
此表单包含一些复选框 这段代码工作正常。
但我不喜欢得到。
如果我用“post”替换“get”,那么真的很奇怪:
看起来控件转到我的“创建”方法,在我的数据库中创建一个nil对象,然后回到原始页面(这就是我告诉“创建”方法无论如何)。
然后,复选框搞砸了......
注意:我在会话中保存了复选框内容。 Dunno,如果真的很重要的话。
似乎“post”默认会让你“创建”?我可以改变吗? “得到”工作正常,但弄糟我的网址......
任何建议???
答案 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