여기에서 프로젝트 템플릿에 제공된 사용자 개체 외에 person이라는 개체를 만드는 데 문제가 있습니다. https : //github.com/RailsApps/rails3-mongoid-devise/tree/master/scriptMongodb와 함께 Devise가 authenticate_person을 인식하지 못합니까?
devise-mongoid 콤보는 내가 만든 사람 개체를 정말로 좋아하지 않습니다.
유증을 삭제 :
Mongoid::Errors::DocumentNotFound in PeopleController#show
Document not found for class Person with id(s) sign_out.
Rails.root: /home/jyj/rubys/rails3-mongoid-devise
그래서 나는 어떤 사람의 아이디와 sign_out을 혼동스럽게 생각합니다.
프로젝트 폴더에있는 모든 사용자 인스턴스를 덮어 쓰고 모든 사람 개체를 모방했습니다. 또한 직접/devise 폴더에있는보기를 사용하는 대신 내 자신의 로그인을 만들고 페이지를 등록했습니다. 그러나 나는 처음에 그 사람의 사물을 서명하는 데 많은 어려움을 겪었습니다. 나는 자바 스크립트 태그를 인식하는 시스템의 순서를하기 전에 다른 메타 태그를 주석했다
<%#= csrf_meta_tag %>
<%= javascript_include_tag :defaults %>
주의 사항 : 나중에 나는 내 application.html.erb 파일이 자바 스크립트 태그를 포함 할 필요가 있다는 것을 발견 나는 정말로 이해하지 못한다. 또한 나는 사용자와 사람 사이의 여기의 차이는 사실에 의한 것을 나는 (아마도) 파악
# config.sign_out_via = Rails.env.test? ? :get : :delete
config.sign_out_via = :delete
, 즉, 설정/초기화하기/devise.rb 파일에 줄을 변경했다 그 테스트 사용자가 factory_girl에서는 초기화되었지만 사람에서는 초기화되지 않았습니다. 그래서 Person은 User와 똑같이 보였습니다. 그러나 그것이 작동하지 않는 것을보고 나는 위의 첫 번째 줄을 주석 처리하고 단순히 sign_out 메서드를 다음과 같이 설정합니다. delete.
하지만 이제 내 문제는 시스템이 authenticate_person 행을 인식하지 못하게되었습니다! 내 peoplecontroller.rb 파일에서 :
class PeopleController < ApplicationController
before_filter :authenticate_person!
def show
@person = Person.find(params[:id])
end
end
도움을 주시면 대단히 감사하겠습니다! 추가 코드는 요청시 제공됩니다. 삭제 : : 여기, 자바 스크립트 태그에 넣어 메타 태그를 삭제하고,이기 위하여 sign_out 방법을 강요 한 후 오류 메시지입니다
NoMethodError in PeopleController#show
undefined method `authenticate_person!' for
Rails.root: /home/jyj/rubys/rails3-mongoid-devise