在design - Ruby on Rails中注册的两个视图



我很困惑。我在我的应用程序中使用设计进行身份验证。我想要两个不同的观点为我的注册过程。在我看来,我把它们都放在devise/Registration文件夹

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

但是我没有办法访问"业务"文件视图。我只有一个模型User,由于user table中的标志,我需要这两个视图。我也不能根据他们的falgscurrent_user.myflag重定向,因为我需要在注册之前就这样做。我也检查了一些链接,但它们与我的选项不同-

更新:我试过像下面这样重写设计注册控制器,但这也没有帮助我。

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

由于业务方法是空的-它没有给设计者关于资源名称和类型等的好主意。我也试过

def business
 resource = User.new
end

但从来没有成功过任何帮助都将不胜感激。由于

我相信我们有同样的问题,当我想把设计注册到其他视图,我得到了同样的问题。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

我希望它能帮助你解决你的问题

你需要用你的业务方法覆盖你的设计/注册控制器,并为相同的

定义路由

你可以使用下面的链接作为参考

https://gist.github.com/kinopyo/2343176

相关内容

  • 没有找到相关文章

最新更新