मैं बस डेविस और रेल 3 के साथ शुरू कर रहा हूं। मेरे पास ऑथरनेटिकेशन है और मूल बातें समझ रही है और समझती है।डिवाइज कोड = 0 अप 3/कोड कोड में कहीं और आंशिक रूप से आंशिक रूप से
अब मेरे गृह नियंत्रक में जो मेरे होम/फ्रंट पेज का प्रतिनिधित्व करता है, मेरे पास दो लिंक हैं जो रजिस्टर => sign_up से लिंक करते हैं और जो लॉगिन/लॉगआउट => sign_in/sign_out के आधार पर बदलते हैं।
हालांकि मैं अपने उपयोगकर्ता को लॉगिन पृष्ठ पर रीडायरेक्ट नहीं करना चाहता हूं। इसके बजाय मैं अपने लॉगिन पेज को अपने फ्रंट पेज पर प्रदर्शित करना चाहता हूं। इसलिए मैंने devise/session/new
टेम्पलेट int को एक दृश्य और _form.html.erb आंशिक रूप से अलग किया है।
और अब मेरे घर ध्यान में रखते हुए मैं के रूप में तो लॉगिन प्रपत्र प्रस्तुत करना:
<%= 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 %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div><%= f.submit "Sign in" %></div>
<% end %>
मेरे त्रुटि इस प्रकार है के रूप में:
NameError in Home#index
Showing devise/sessions/_form.html.erb where line #1 raised:
undefined local variable or method `resource' for #<#<Class:0x614ec68>:0x6157ff8>
Extracted source (around line #1):
1: <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
2: <div><%= f.label :email %><br />
3: <%= f.email_field :email, :autofocus => true %></div>
4:
<% if user_signed_in? %>
Welcome: <b><%= current_user.username %> (<%= current_user.group.name %>)</b>
<%= link_to "Logout", destroy_user_session_path, :method => 'delete' %>
<% else %>
<%= render 'devise/sessions/form' %> // Rendering the partial here
<%= link_to "Login", new_user_session_path %>
<% end %>
<hr>
यह आंशिक के कोड है
मुझे समझ में आता है कि त्रुटि क्यों होती है। ऐसा इसलिए है क्योंकि आंशिक इसे संसाधन विशेषता नहीं दी जा रही है। मैं dump(resource)
का इस्तेमाल किया और यह पता चला है कि यह एक उपयोगकर्ता मॉडल/वस्तु तो मैं इसे करने से पहले निम्न जोड़ दिया जाता है:
<% if @user %>
<% resource = @user %>
<% end %>
और मेरे मुख नियंत्रक सूचकांक विधि के लिए निम्न इससे जोड़ा गया: है कि मैं पाने के बाद
def index
@user = User.new
end
हालांकि resource_name त्रुटि जो :user
हो जाती है और यदि मैं इसे सेट करता हूं तो मुझे devise_mapping.rememberable?
की समस्या है जो मुझे नहीं पता कि कैसे प्रदान किया जाए।
मैं इसे ठीक से करना चाहता हूं इसलिए मैं शुरूआत में गन्दा और अनौपचारिक दृष्टिकोण से बचना चाहता हूं।