Ruby on rails 设计用户编辑注册路径不工作
我有一个rails 4应用程序,它有一个用户模型和两种类型的用户:贷款人和企业。在登录时,贷款人会被引导到他们的仪表板,仪表板会显示他们的业务信息。他们可以从仪表板转到“帐户”页面,在那里他们可以编辑自己的信息(密码、电子邮件等) 当用户选择“帐户”时,将显示一条设备消息,其中说明:Ruby on rails 设计用户编辑注册路径不工作,ruby-on-rails,ruby-on-rails-4,devise,authorization,Ruby On Rails,Ruby On Rails 4,Devise,Authorization,我有一个rails 4应用程序,它有一个用户模型和两种类型的用户:贷款人和企业。在登录时,贷款人会被引导到他们的仪表板,仪表板会显示他们的业务信息。他们可以从仪表板转到“帐户”页面,在那里他们可以编辑自己的信息(密码、电子邮件等) 当用户选择“帐户”时,将显示一条设备消息,其中说明: You need to sign in or sign up before continuing. 此时,用户已经过身份验证,仪表板通过@user.name和视图中需要对用户进行身份验证的其他调用访问用户的属性
You need to sign in or sign up before continuing.
此时,用户已经过身份验证,仪表板通过@user.name和视图中需要对用户进行身份验证的其他调用访问用户的属性
我需要弄清楚为什么编辑路径不接受当前经过身份验证的用户
routes.rb
devise_for :users, skip: :registrations
devise_for :lenders, skip: :sessions, :controllers => {:registrations => "lenders/registrations"}
devise_for :businesses, skip: :sessions, :controllers => {:registrations => "businesses/registrations"}
<li class="list-group-item">
<%= link_to edit_lender_registration_path do %>
<i class="fa fa-user"></i> Account
<% end %>
</li>
class Lenders::RegistrationsController < Devise::RegistrationsController
before_filter :update_sanitized_params
def new
super
flash[:success] = 'An email has been sent to your inbox with a link to activate you account.'
end
def create
super
end
def update
super
end
private
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, :type, :confirmed_at)}
end
end
\u sidebar.html.erb
devise_for :users, skip: :registrations
devise_for :lenders, skip: :sessions, :controllers => {:registrations => "lenders/registrations"}
devise_for :businesses, skip: :sessions, :controllers => {:registrations => "businesses/registrations"}
<li class="list-group-item">
<%= link_to edit_lender_registration_path do %>
<i class="fa fa-user"></i> Account
<% end %>
</li>
class Lenders::RegistrationsController < Devise::RegistrationsController
before_filter :update_sanitized_params
def new
super
flash[:success] = 'An email has been sent to your inbox with a link to activate you account.'
end
def create
super
end
def update
super
end
private
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, :type, :confirmed_at)}
end
end
账户
注册\u controller.rb
devise_for :users, skip: :registrations
devise_for :lenders, skip: :sessions, :controllers => {:registrations => "lenders/registrations"}
devise_for :businesses, skip: :sessions, :controllers => {:registrations => "businesses/registrations"}
<li class="list-group-item">
<%= link_to edit_lender_registration_path do %>
<i class="fa fa-user"></i> Account
<% end %>
</li>
class Lenders::RegistrationsController < Devise::RegistrationsController
before_filter :update_sanitized_params
def new
super
flash[:success] = 'An email has been sent to your inbox with a link to activate you account.'
end
def create
super
end
def update
super
end
private
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, :type, :confirmed_at)}
end
end
类别贷方::注册控制器<设计::注册控制器
过滤前:更新已消毒的参数
def新
超级的
flash[:success]=“已向您的收件箱发送了一封电子邮件,其中包含激活您帐户的链接。”
终止
def创建
超级的
终止
def更新
超级的
终止
私有的
def更新\u消毒\u参数
为(:注册){许可证(:电子邮件,:密码,:密码,:确认,:键入,:确认,}设计参数
终止
终止
用户、贷款人和企业是不同的模式吗?@mus贷款人和企业是不同的模式,但它们继承自用户。我猜设计:贷款人
自动要求贷款人
登录。您正在使用design\u:users
创建会话。尝试删除skip::sessions
,然后使用借贷者路径登录,看看是否有效。