내 레일 응용 프로그램은 몇 택시 사업자를 가지고 있으며, 그들은 몇 택시를, 다음과 같이 관련이있다 : I는 각 연산자에 대한 관리자를 만들 수 있도록 인증 시스템을 추가 할왜 Devise 인증을위한 중첩 된 리소스가 작동하지 않습니까?
class Operator < ActiveRecord::Base
has_many :cabs
end
. 나는 Devise를 사용하고 있습니다. 내가 같은 경로를 만들 필요가 있기 때문에 : 운영자/:
scope "operators/:operator_id" do
devise_for :admins
end
: 위에서 언급 한 경로를 얻을 수 있도록
다음
rails generate devise Admin
내가 내 경로를 수정 : operator_id/관리자/sign_up, 나는대로 관리 모델을 생성
레이크 루트를 실행하면 필요한 URL이 표시되고 있음을 알 수 있습니다. 마지막으로
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password, autocomplete: "off" %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<% f.hidden_field :operator_id, :value => params[:operator_id] %>
<div><%= f.submit "Log in" %></div>
<% end %>
<%= render "devise/shared/links" %>
에
H2> 로그 : 나는 또한 유증/세션을 수정
class Admin < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :operator
end
class Operator < ActiveRecord::Base
has_many :admins
end
이/new.html.irb가 operator_id에 대한 숨겨진 필드를 포함하는 : 나는 또한 모델을 수정 택시 세부 정보에 액세스하기 전에 관리자를 인증하기 위해 cabs_controller에 다음을 추가했습니다.
before_filter : authenticate_admin!
문제는 관리자 양식을 제출할 수 없다는 것입니다. 관리자 자격 증명을 제출할 때 양식이 응답하지 않습니다. 내가 어디로 잘못 가고 있니?
여전히 작동하지 않습니다 :( –
서버을 다시 시작 .... 이제 작동하는 것처럼 보입니다.하지만 새 관리자는 연결된 operator_id를 얻지 못합니다. –
이것은 관리자가 다른 택시 운영자의 택시에 액세스 할 수 있음을 의미합니다. 나는 절대적으로 여유가 없다! –