我处于一种令人困惑的境地。我在我的应用程序中使用Devise进行身份验证。我希望我的注册流程有两种不同的观点。在我的观点中,我将它们都放在devise/Registration
文件夹
1-business.html.erb
2-new.html.erb
但我无法访问该“业务”文件视图。我只有一个模型User
,由于user table
中有一个标记,我需要这两个视图。我也不能根据他们的falgs
current_user.myflag
来重新审核,因为我甚至需要在注册之前这样做。我也检查了一些链接,但它们与我的选项不同 -
更新: 我试过覆盖下面的设计注册控制器,但这也没有帮助我。
class Users::RegistrationsController < Devise::RegistrationsController
def business
end
end
由于业务方法是空的 - 它没有给出设备关于资源名称和类型等的好主意。我也试过
def business
resource = User.new
end
但从未奏效 任何帮助都将大大鼓励。感谢
答案 0 :(得分:1)
我认为当我想将设计注册放到其他视图时我们遇到了同样的问题而且我遇到了同样的问题。 undefined resources or nil
要以某种方式解决initialize the resource
所需的问题。一种方法是初始化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
我希望它可以帮助您解决问题。
答案 1 :(得分:0)