0

私は混乱しています。私はアプリケーションでの認証にDeviseを使用しています。そして、私は登録プロセスに2つの異なった見方をしたい。私の意見では、私はdevise/RegistrationフォルダにRuby on Railsに登録されている2つのビュー

1-business.html.erb 
2-new.html.erb 

をそれらの両方を置くしかし、私はその「ビジネス」ファイルビューにアクセスする方法を持っていません。私はUserの1つのモデルしか持っていないので、user tableのフラグのためにこれら2つのビューが必要です。私は登録.Iはあまりにもいくつかのリンクをチェックする前であっても、それを実行する必要がありますが、彼らは私のオプションとは異なりますので、私はまた、彼らのfalgscurrent_user.myflag等に応じredriectすることはできません -

更新

:私は以下のような工夫登録コントローラをオーバーライドしようとしている それも私を助けなかった。

class Users::RegistrationsController < Devise::RegistrationsController 
    def business 
    end 
end 

ビジネスメソッドが空であるため、リソース名や型式などの良いアイデアは与えられませんでした。私はまた、

def business 
resource = User.new 
end 

を試みたが、すべてのヘルプが大幅にapprecaitedされます 働いたことはありません。おかげ

+0

ルートファイルを更新しますか? –

+0

@HardikUpadhyayの問題は、コントローラがアプリケーションがdefビジネスに入っていても動作していなかったため、ルートファイルにありませんでした。 – ImranNaqvi

+0

直面したエラーメッセージはありますか? –

答えて

0

のリンクの下に使用することができ、あなたのビジネスの方法であなたの工夫/登録コントローラをオーバーライドして、同じ

のためのルートを定義する必要があります私は他のビューに登録を作成したいと思ったとき、私は同じ問題を抱えていました。 undefined resources or nilこの問題を解決するには何とかinitialize the resourceが必要です。 1つの方法は、helpers/application_helpers:のリソースを初期化して、任意のビューに呼び出すことができるようにすることです。注意:resource here is user

def resource_name 
    :user 
    end 

    def resource 
    @resource ||= User.new 
    end 

    def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
    end 

をオーバーライドコントローラ

class CustomSessionController < Devise::RegistrationsController 
include ApplicationHelper 
def business 
end 
end 

でRoute.rb

devise_for :users, :controllers => { :registrations => "custom_session" } 

    devise_scope :user do 
    get "/business-signup" =>"custom_session#business" 
end 

で、私はそれはあなたがあなたの問題を解決するのに役立ちます願っています。

+0

私は私の 'defビジネス;を置きます – ImranNaqvi

+1

私はそれを解決したいくつかのより重要なポイントであなたの答えを更新しました。あなたのポストを答えとして受け入れると、私はそれについてもう一度考えるようになりました。そして、ofcourseは大ヒットでした:)ありがとう – ImranNaqvi

関連する問題