0

を変更したい

  def url_after_create
    '/'
  end

クリアランスのUsersControllerの。私がこれを行う場合:

class UsersController < Clearance::UsersController

  protected

  def url_after_create
    '/dashboard'
  end


end

新しいユーザーをサインアップしようとすると、オーバーライドしない場合は完全に機能しますが、次のようになります。UsersController のアクション 'index' が見つかりませんでした -- アクション (投稿) は '/users' であり、それはindex アクションが定義されていないため、失敗したようです。私は何をすべきか?

編集: Clearance::UsersControllerのコードを追加

class Clearance::UsersController < ApplicationController
  unloadable

  skip_before_filter :authorize,   :only => [:new, :create]
  before_filter :redirect_to_root, :only => [:new, :create], :if => :signed_in?

  def new
    @user = ::User.new(params[:user])
    render :template => 'users/new'
  end

  def create
    @user = ::User.new(params[:user])
    if @user.save
      sign_in(@user)
      redirect_back_or(url_after_create)
    else
      flash_failure_after_create
      render :template => 'users/new'
    end
  end

  private

  def flash_failure_after_create
    flash.now[:notice] = translate(:bad_email_or_password,
      :scope   => [:clearance, :controllers, :passwords],
      :default => "Must be a valid email address. Password can't be blank.")
      end

  def url_after_create
    '/'
  end
end
4

1 に答える 1

0

ルートmatch ':controller(/:action(/:id(.:format)))'にあるこの行は、問題を引き起こしていました。それを解決したコメント。

于 2012-02-02T16:11:09.187 に答える