使用Rails 3.0.9,我尝试将帖子重定向到 UserController 中的 创建 方法,Firebug显示POST正确发送,我的create方法执行,POST返回'302'暂时移动。正如预期的那样,GET请求路由到 UserProfileController 的 new 操作, HOWEVER ,没有对GET请求的响应!
我尝试使用其他控制器/操作也具有相同的结果。为什么重定向后的GET请求为空?我究竟做错了什么?对/ users / profile / new的标准请求确实返回了预期的GET响应。
UserController
def create
@user = User.new(params[:user]) if params[:user]
logger.debug (params[:user])
logger.debug @user
logger.debug @user.valid?
logger.debug @user.errors
if(@user.valid?)
session[:new_user] = @user
logger.debug "Creating User Profile"
end
redirect_to new_user_profile_url # controller => user_profile, action => new
end
UserProfileController
def new
@user_profile = UserProfile.new
# check to see if the new user is in session, if not, then redirect to previous page
user = session[:new_user]
logger.debug 'going to right url???'
logger.debug request.method
logger.debug request.format
logger.debug request.headers
logger.debug request.url
respond_to do |format|
format.html
format.xml { render :xml => @user_profile }
end
end
服务器日志
Creating User Profile
Redirected to http://localhost:3000/users/profile/new
Completed 302 Found in 325ms
Started GET "/users/profile/new" for 127.0.0.1 at Fri Aug 05 10:38:38 -0500 2011
Processing by UserProfileController#new as HTML
going to right url???
GET
text/html
http://localhost:3000/users/profile/new
Rendered shared/_trust_reports.haml (45.0ms)
Rendered user_profile/new.haml within layouts/application (590.0ms)
Completed 200 OK in 973ms (Views: 616.0ms | ActiveRecord: 0.0ms)
答案 0 :(得分:2)
原来这是我自己的错误,我没有意识到我们使用的javascript /主题默认通过ajax提交所有表单。更改默认行为后,它按预期工作,感谢Fabio建议。
答案 1 :(得分:0)
根据该日志文件,服务器已结束其作业并已呈现输出。它可能是您的浏览器的问题(有时firebug和其他开发人员工具锁定浏览器)或者它可能是Web服务器的问题。我假设你正在使用webrick(默认的)。
请使用其他浏览器尝试使用您的代码,如果问题仍在尝试使用不同的rails服务器,则会有很多这样的问题:乘客,独角兽,杂种,瘦身。
通常我使用独立乘客开发,您可以使用gem install passenger
进行安装,然后从您的rails根目录运行
passenger start
第一次需要几分钟,因为它会下载nginx独立版,它会编译它。