gpt4 book ai didi

ruby-on-rails - Rails devise - 如果用户未登录,如何显示登录表单

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:30 25 4
gpt4 key购买 nike

我是 RoR 的新手...只是警告你 :)

我在 routes.rb 中做了这条路线:

  scope :module => :mobile, :as => :mobile do
constraints(:subdomain => /m/) do
resources :home
devise_for :users, :path => "", :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "signup" }, :controllers => {:sessions => "sidebar/sessions"}

resources :disclosures # Will have new, get, look up a disclosure

devise_for :users, :path => "", :path_names =>
{ :sign_in => "login", :sign_out => "logout", :sign_up => "signup" }
# How do I tell is to also take care of the confirm account screen?
end
end

然后我制作了这个 HAML 页面:

-content_for :primary_content do
.content_container
%strong{:class => "code", :id => "message"} Hello Alex!

-content_for :primary_content do
-if signed_in?
=render "sidebar/common/primary_navigation"
-else
=render "devise/sessions/form"

当用户未登录时,它会给我这个错误:

undefined local variable or method `resource' for #<#<Class:0x147fe1990>:0x147fdab40>

1: = form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:id => "login-form"}) do |f| 
2: %fieldset.field-container
3: = f.label(t :label_login)
4: .input

和这个堆栈跟踪:

app/views/devise/sessions/_form.html.haml:1:in `_app_views_devise_sessions__form_html_haml__2025707780_2630401320'
app/views/mobile/home/index.html.haml:26:in `_app_views_mobile_home_index_html_haml__2141491110_2759485880'
app/views/mobile/home/index.html.haml:22:in `_app_views_mobile_home_index_html_haml__2141491110_2759485880'
app/views/mobile/home/index.html.haml:1:in `_app_views_mobile_home_index_html_haml__2141491110_2759485880'
app/controllers/mobile/home_controller.rb:6:in `index'

所以如果我理解正确的话,它不知道如何处理代码的表单部分。那是对的吗?我做错了什么导致这个问题?我该如何解决?

谢谢!!

最佳答案

您不需要呈现设计表单。

所以删除这个:

-else
=render "devise/sessions/form"

您需要将此添加到要进行身份验证的 Controller 的顶部:

before_filter :authenticate_user!, :only => [:edit, :update, :destroy]

如果用户未通过身份验证,这将导致设计重定向到登录表单。如果他已经通过身份验证,则将呈现您的正常 View 。

关于ruby-on-rails - Rails devise - 如果用户未登录,如何显示登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com