Rails表示发出GET请求而不是POST请求
我正在制作一个Rails 3.1应用程序并且有一个工作正常的注册表单,但我似乎已经改变了一些东西来打破它..我正在使用Twitter bootstrap和twitter_bootstrap_form_for gem。 我做了一些与表单字段格式相混淆的更改,但更重要的是,当我提交注册表单来创建新用户时,信息显示在URL中,如下所示:
编辑:这是在最新版本的Chrome和Firefox中发生的
HTTP://本地主机:3000 / UTF8 =%E2%9C%93&authenticity_token = UaKG5Y8fuPul2Klx7e2LtdPLTRepBxDM3Zdy8S%2F52W4%3D&用户%5Bemail%5D = kevinc%40example.com&用户%5Bpassword%5D =测试和用户%5Bpassword_confirmation%5D =测试&提交=注册+向上
以下是表单的代码:
Sign Up Now!
'me@example.com' %>
这是UsersController的代码:
class UsersController "Signed up!" else render 'new' end end end
不确定是否还有更多需要,但如果有,请告诉我! 谢谢!
编辑:为了调试我尝试指定:post并使用普通的form_for
:post) do |f| %>
这给了我与上面相同的问题。
添加routes.rb:
Auth31::Application.routes.draw do get "home" => "pages#home" get "about" => "pages#about" get "contact" => "pages#contact" get "help" => "pages#help" get "login" => "sessions#new", :as => "login" get "logout" => "sessions#destroy", :as => "logout" get "signup" => "users#new", :as => "signup" root :to => "pages#home" resources :pages resources :users resources :sessions resources :password_resets end
问题是当Rails form_for生成自己的时,我正在指定HTML表单标记。 请参阅下文,向表单添加一个类:
<%= form_for(@user, :html => { :class => "form-stacked"} ) do |f| %>
这很好用。 我仍然不确定为什么有2个标签会产生GET请求。
看起来你正在发送一个GET请求,而不是一个POST请求。 我不确定为什么会发生这种情况(您是否尝试过使用普通的form_for
进行调试?),但您应该能够通过明确设置方法来修复它:
<%= twitter_bootstrap_form_for(@user, :method => :post) do |user| %>
- 在rake任务中接受来自控制台/命令提示符的用户输入
- 在Hartl的rails教程的步骤5.1.2中,bootstrap-sass gem破坏了我的轨道3.2.3
- 山狮升级后无法安装一些gem
- 如何将heroku数据拉入本地SQLite3数据库? 遇到问题
- 如何在Rails 3站点中为每个页面设置不同的背景图像?
- rail3 / rspec / devise:除非我添加一个dummy = subject.current_user.inspect,否则rspec控制器测试失败
- accepts_nested_attributes_for链接到现有记录,而不是创建新记录
- 应该Rails uglifier uglify(mangle)函数名吗?
- rmagick有一种方法可以在内存中转换图像