คำถามติดแท็ก devise

Devise เป็นอัญมณีรับรองความถูกต้องสำหรับ Ruby-on-Rails แทนที่โซลูชันก่อนหน้านี้เช่น Restful Authentication หรือ Authlogic

29
ไม่มีเส้นทางที่ตรงกับ“ / users / sign_out” ประดิษฐ์ราง 3
ฉันได้ติดตั้ง devise ในแอพของฉันและใช้สิ่งต่อไปนี้ในapplication.html.erbไฟล์ของฉัน: <div id="user_nav"> <% if user_signed_in? %> Signed in as <%= current_user.email %>. This cannot be cheese? <%= link_to 'Sign out', destroy_user_session_path %> <% else %> <%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %> <% end %> </div> ฉันวิ่งrake routesและยืนยันว่าเส้นทางทั้งหมดถูกต้อง นอกจากนี้ในของฉัน routes.rbไฟล์ฉันมีและdevise_for :usersroot :to …

5
แทนที่ตัวควบคุมการลงทะเบียนประดิษฐ์
ฉันได้เพิ่มเขตข้อมูลลงในแบบฟอร์มการสมัครใช้งานซึ่งยึดตามแบบจำลองอื่นดูที่ฉันจะใช้แอตทริบิวต์แบบซ้อนกับแบบจำลองรุ่นสำหรับรายละเอียดเลือดได้อย่างไร ส่วนนี้ทำงานได้ดี ปัญหาตอนนี้คือเมื่อฉันบันทึกมันล้มเหลวในการสร้างการกระทำของตัวควบคุมการลงทะเบียนที่จัดทำโดยประดิษฐ์ด้วยActiverecord::UnknownAttributeErrorในฟิลด์นี้ (บริษัท ) ฉันสมมติว่าฉันต้องการแทนที่คอนโทรลเลอร์การลงทะเบียนหรือมีวิธีที่ดีกว่า / ง่ายกว่าที่ฉันควรเข้าใกล้สิ่งนี้หรือไม่?

6
Heroku / ประดิษฐ์ - ไม่มีโฮสต์เชื่อมโยงถึง! โปรดระบุ: พารามิเตอร์โฮสต์หรือตั้งค่า default_url_options [: host]
ฉันพยายามที่จะผลักดันแอปของฉันใน heroku ฉันยังอยู่ในการพัฒนา ฉันใช้การประดิษฐ์ด้วยโมดูลที่ยืนยันได้ เมื่อฉันพยายามเพิ่มผู้ใช้ด้วยคอนโซล heroku ฉันพบข้อผิดพลาดนี้: Missing host to link to! Please provide :host parameter or set default_url_options[:host] ในสภาพแวดล้อมการทดสอบและ dev ฉันมีบรรทัดต่อไปนี้: environment / development.rb และ environment / test.rb config.action_mailer.default_url_options = { :host => 'localhost:3000' } ฉันไม่ได้ตั้งค่าบางอย่างในสภาพแวดล้อมการผลิต ฉันพยายามที่จะผลักดันด้วย config.action_mailer.default_url_options = { :host => 'mywebsitename.com' } config.action_mailer.default_url_options = { :host => …

14
ฉันจะลบเส้นทาง Devise เพื่อสมัครได้อย่างไร
ฉันกำลังใช้ Devise ในแอป Rails 3 แต่ในกรณีนี้ผู้ใช้จะต้องสร้างขึ้นโดยผู้ใช้ปัจจุบันซึ่งเป็นผู้กำหนดสิทธิ์ที่ตนจะมี ด้วยเหตุนี้ฉันต้องการ: การลบเส้นทางสำหรับผู้ใช้ในการลงทะเบียน ที่จะยังคงให้ผู้ใช้สามารถแก้ไขโปรไฟล์ของพวกเขา (เปลี่ยนที่อยู่อีเมลและรหัสผ่าน) หลังจากที่พวกเขาได้ลงทะเบียน ฉันจะทำสิ่งนี้ได้อย่างไร ขณะนี้ฉันกำลังลบเส้นทางนี้อย่างมีประสิทธิภาพโดยวางสิ่งต่อไปนี้ก่อนหน้าdevise_for :users: match 'users/sign_up' => redirect('/404.html') ใช้งานได้ แต่ฉันคิดว่ามีวิธีที่ดีกว่าใช่มั้ย ปรับปรุง ดังที่เบอนัวต์การ์เรตกล่าวว่าทางออกที่ดีที่สุดในกรณีของฉันคือการข้ามการสร้างเส้นทางการลงทะเบียนและเพียงแค่สร้างสิ่งที่ฉันต้องการจริงๆ ในการทำเช่นนั้นฉันวิ่งครั้งแรกrake routesจากนั้นใช้ผลลัพธ์เพื่อสร้างสิ่งที่ฉันต้องการอีกครั้ง ผลลัพธ์ที่ได้คือ: devise_for :users, :skip => [:registrations] as :user do get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration' put 'users' => 'devise/registrations#update', :as => 'user_registration' end โปรดทราบว่า: ฉันยังมี:registerableในUserแบบจำลองของฉัน …

5
สร้างผู้ใช้ประดิษฐ์จากคอนโซล Ruby
มีความคิดเกี่ยวกับวิธีการสร้างและบันทึกวัตถุผู้ใช้ใหม่ด้วยประดิษฐ์จากคอนโซลทับทิม? เมื่อฉันพยายามที่จะบันทึกฉันจะได้รับเท็จเสมอ ฉันเดาว่าฉันขาดอะไรบางอย่างไป แต่ฉันไม่พบข้อมูลที่เกี่ยวข้อง

8
การทดสอบ Ruby ทั้งหมดเพิ่ม: วิธีการที่ไม่ได้กำหนดʻauthenticate 'สำหรับ nil: NilClass
การทดสอบส่วนใหญ่ของฉันมีดังต่อไปนี้และฉันไม่เข้าใจว่าทำไม การเรียกวิธีการทั้งหมดทำให้เกิดข้อผิดพลาด 'รับรองความถูกต้อง' ฉันได้ตรวจสอบโค้ดแล้วหากมีวิธีที่เรียกว่า "พิสูจน์ตัวตน" แต่ไม่มีวิธีการดังกล่าว 1) Admin::CommentsController handling GET to index is successful Failure/Error: get :index undefined method `authenticate!' for nil:NilClass # ./spec/controllers/admin/comments_controller_spec.rb:9:in `block (3 levels) in <top (required)>' 124) PostsController handling GET for a single post should render show template Failure/Error: get :show, :year => '2008', :month => …

5
รูปแบบการประดิษฐ์ภายในตัวควบคุมที่แตกต่างกัน
ฉันใช้อัญมณีประดิษฐ์สำหรับกระบวนการ sign_in / sign_out ฉันสร้างไฟล์มุมมองจากการประดิษฐ์โดยใช้ rails g devise views ฉันเห็นว่ามีไฟล์รุ่น / เซสชัน / new.html.erb ซึ่งมีแบบฟอร์มสำหรับลงชื่อเข้าใช้ ฉันสร้างไฟล์อื่นอีกครั้งประดิษฐ์ / session / _form.html.erb และทำ<%= render 'form' %>ภายในไฟล์ new.html.erb และนั่นก็ใช้ได้ดีมาก ตอนนี้ฉันต้องการรวมฟอร์มนี้จากคอนโทรลเลอร์อื่น ดังนั้นในคอนโทรลเลอร์ที่เรียกว่า 'main', (โดยเฉพาะภายในหน้าดู) 'mains / index.html.erb' ฉันรวม<%= render 'devise/sessions/form' %>ไฟล์ไว้ด้วย ดูเหมือนว่าการรวมนั้นใช้ได้ดี แต่ฉันได้รับข้อผิดพลาดต่อไปนี้ NameError in Mains#index Showing /home/administrator/Ruby/site_v4_ruby/app/views/devise/sessions/_form.html.erb where line #1 raised: undefined local …

3
ฉันจะตั้งค่าการยืนยันอีเมลกับ Devise ได้อย่างไร?
มีบทช่วยสอนที่อธิบายวิธีตั้งค่าอีเมลยืนยันการสมัครของ Devise ตั้งแต่เริ่มต้น (ทั้งในการพัฒนาและการผลิต) กล่าวคือหากคุณไม่ได้ตั้งค่า Action Mailer ไว้? การค้นหาของ Google เพิ่งพบชิ้นส่วนต่างๆที่เกี่ยวข้องกับเรื่องนี้ ไม่มีชิ้นไหนอธิบายได้เพียงพอและฉันไม่แน่ใจว่ามันเข้ากันได้อย่างไร มีคำอธิบายทีละขั้นตอนหรือแม้แต่สิ่งที่อธิบายขั้นตอนเริ่มต้นหรือไม่? ในที่สุดก็ใช้งานได้ ทำตามขั้นตอนทั้งหมดในคำตอบที่ยอมรับด้านล่างจากนั้นเพิ่มสิ่งต่อไปนี้ในไฟล์ environment.rb ของฉัน: ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :tls => true, :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :authentication => :login, :user_name => "[username]", :password => "[password]" }

21
ราง - ประดิษฐ์ - การจัดการ - devise_error_messages
ในหน้าแก้ไขผู้ใช้ของฉันมีบรรทัดดังนี้: <%= devise_error_messages! %> ปัญหาคือสิ่งนี้ไม่ได้แสดงข้อผิดพลาดตามวิธีมาตรฐานที่แอปอื่น ๆ ทำ: <% flash.each do |key, value| %> <div class="flash <%= key %>"><%= value %></div> <% end %> คำถามของฉันคือฉันจะทำให้ข้อความแสดงข้อผิดพลาดของอุปกรณ์ทำงานเหมือนกับคนอื่น ๆ ที่ใช้แฟลชได้อย่างไรแต่ละ? ขอบคุณ

4
ประดิษฐ์ - ฉันจะห้ามไม่ให้ผู้ใช้บางรายลงชื่อเข้าใช้ได้อย่างไร
ฉันใช้ Devise สำหรับการตรวจสอบสิทธิ์ในแอปพลิเคชันของฉัน ฉันจะห้ามไม่ให้ผู้ใช้บางรายลงชื่อเข้าใช้ - ประเภทปิดการใช้งานผู้ใช้ได้อย่างไร

16
ไม่ได้ตั้งค่าคีย์ลับของ Devise
ฉันกำลังพัฒนาแอพ Rails 4 โดยใช้อัญมณี Active Admin สำหรับแบ็คเอนด์การดูแลระบบ ผู้ดูแลระบบที่ใช้งานอยู่จะใช้ Devise สำหรับการตรวจสอบผู้ใช้ ตอนนี้เมื่อฉันพยายามปรับใช้แอพโดยใช้capistranoบนเซิร์ฟเวอร์ VPS ฉันได้รับข้อผิดพลาดด้านล่าง: rake aborted! Devise.secret_key was not set. Please add the following to your Devise initializer: config.secret_key = '-- secret key --' การค้นหาโดย Google ไม่ได้ทำอะไรมากสำหรับข้อผิดพลาดนี้ ข้อเสนอแนะใด ๆ ว่าเหตุใดจึงเกิดข้อผิดพลาด? ฉันควรเพิ่มรหัสลับในโปรแกรมdeviseเริ่มต้นเนื่องจากฉันไม่พบสถานที่ใด ๆ ในการตั้งค่าคีย์การกำหนดค่าดังกล่าวinitializers/devise.rb?

4
วิธีตรวจสอบรหัสผ่านของผู้ใช้ใน Devise
ฉันมีปัญหาในการจับคู่รหัสผ่านผู้ใช้โดยใช้อัญมณีประดิษฐ์ในราง รหัสผ่านผู้ใช้ที่เก็บไว้ในฐานข้อมูลของฉันซึ่งเป็นรหัสผ่านที่เข้ารหัสและฉันพยายามค้นหาผู้ใช้ด้วยรหัสผ่าน แต่ฉันไม่เข้าใจวิธีจับคู่รหัสผ่านจากแบบฟอร์มและรหัสผ่านรหัสผ่านในฐานข้อมูลของฉัน User.find_by_email_and_password(params[:user][:email], params[:user][:password])

5
Rails 5 วิธีที่ไม่ได้กำหนด `สำหรับ 'สำหรับ # <ประดิษฐ์ในบรรทัด devise_parameter_sanitizer.for
ฉันกำลังทำงานกับ Rails 5 ฉันเพิ่มชื่อผู้ใช้ฟิลด์ใหม่ในรุ่น User class Users::RegistrationsController &lt; Devise::RegistrationsController before_action :configure_permitted_parameters protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up).push(:username) end end ในระหว่างการลงทะเบียนแสดงข้อผิดพลาด: ไม่ได้กำหนดวิธีการ `สำหรับ 'สำหรับ # คุณหมายถึง? ส้อม ติดตาม: NoMethodError (วิธีที่ไม่ได้กำหนด `สำหรับ 'สำหรับ # คุณหมายถึง? fork): app/controllers/users/registrations_controller.rb:7:in `configure_permitted_parameters' Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.0ms) Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.9ms) Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb …

9
แชร์เซสชัน (คุกกี้) ระหว่างโดเมนย่อยใน Rails?
ฉันมีการตั้งค่าแอปที่ผู้ใช้แต่ละคนเป็นของ บริษัท และ บริษัท นั้นมีโดเมนย่อย (ฉันใช้โดเมนย่อยสไตล์ basecamp) ปัญหาที่ฉันกำลังเผชิญคือทางรถไฟกำลังสร้างคุกกี้หลายตัว (อันหนึ่งสำหรับ lvh.me และอีกอันสำหรับ subdomain.lvh.me) ซึ่งทำให้แอปพลิเคชันของฉันหยุดพักค่อนข้างน้อย (เช่นข้อความแฟลชที่ไม่หยุดหย่อนแม้ว่าจะมีคำขอทั้งหมดเพียงครั้งเดียวก็ตาม ลงทะเบียนเข้า). ฉันมีสิ่งนี้ในไฟล์ /cofig/initilizers/session_store.rb ของฉัน: AppName::Application.config.session_store :cookie_store, key: '_application_devise_session', domain: :all โดเมน:: ทั้งหมดนี้ดูเหมือนจะเป็นคำตอบมาตรฐานที่ฉันพบใน Google แต่ดูเหมือนจะไม่ได้ผลสำหรับฉัน ขอความช่วยเหลือใด ๆ !

8
ตั้งรหัสผ่านใหม่จากคอนโซล Rails
ในขณะที่ใช้งานแอพคุณจะเลือกผู้ใช้ตามที่อยู่อีเมลแล้วตั้งรหัสผ่านด้วยตนเองภายในrails consoleสำหรับ Devise ได้อย่างไร? นอกจากนี้ฉันจะไปตรวจสอบเอกสารเพื่อให้ครอบคลุมรายละเอียดเพิ่มเติมเกี่ยวกับการจัดการบัญชีขณะใช้ Devise ได้ที่ไหน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.