Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建操作始终重定向到默认根目录,而不是成功登录_Ruby On Rails_Ruby On Rails 3_Rails Routing - Fatal编程技术网

Ruby on rails 创建操作始终重定向到默认根目录,而不是成功登录

Ruby on rails 创建操作始终重定向到默认根目录,而不是成功登录,ruby-on-rails,ruby-on-rails-3,rails-routing,Ruby On Rails,Ruby On Rails 3,Rails Routing,我正在将我的rails 2.3.10应用程序升级到rails 3。我注意到我所有的创建/更新操作路径都不工作,相反,我得到的是重定向到默认根url消息,而不是更新数据。顺便说一句,我的模型中没有数据库字段的attr_可访问性。不确定这对rails3是否有任何影响 下面是我尝试登录时的一个实例 routes.rb resources :user_sessions user_sessions controller(authlogic style) before_filter :require_

我正在将我的rails 2.3.10应用程序升级到rails 3。我注意到我所有的创建/更新操作路径都不工作,相反,我得到的是重定向到默认根url消息,而不是更新数据。顺便说一句,我的模型中没有数据库字段的attr_可访问性。不确定这对rails3是否有任何影响

下面是我尝试登录时的一个实例

routes.rb
resources :user_sessions

user_sessions controller(authlogic style)
  before_filter :require_no_user

  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      redirect_back_or_default root_url
    else
      render :action => 'new'
    end
 end

My login view form
<%= form_for @user_session do |f| %>
   <%= f.label :Username, 'Username/Email' %>
   <%= f.text_field :username, :class => 'text' %>
   <%= f.label :password %>
   <%= f.password_field :password, :class => 'text' %>
   <%= f.submit "Sign In" %>
<% end %>
routes.rb
资源:用户会话
用户会话控制器(authlogic样式)
筛选前:要求\u无\u用户
def新
@user\u session=UserSession.new
结束
def创建
@user\u session=UserSession.new(参数[:user\u session])
if@user\u session.save
重定向\u返回\u或\u默认根\u url
其他的
呈现:操作=>“新建”
结束
结束
我的登录视图表单
'文本''>
'文本''>

大多数表单提交都会发生这种情况。到目前为止我还不走运:(

为什么实例变量
@user\u session
应该有效或已填充?我错过了通常的
@user\u session=UserSession.new(params[:user\u session]
。是的,有常见的控制器对象代码。在我的帖子中更新了,请参见上文。好的,我找到了这种奇怪行为的原因。原来我在我的资源路径上方移动了一个路径捕捉器。感谢您关注此问题。