我刚开始使用Devise和Rails3.我已经认证了IQnetication并且正在理解基础知识.
截至目前在我的Home Controller中代表我的Home/Front Page我有两个链接,一个链接到Register => sign_up,另一个根据login/logout => sign_in/sign_out而改变.
但是,我不想将我的用户重定向到登录页面.相反,我想在我的首页上显示我的登录表单.所以我将devise/session/new模板int 分离到视图和_form.html.erb部分.
现在,在我的主视图中,我将登录表单呈现为:
<% 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>
Run Code Online (Sandbox Code Playgroud)
这是部分代码:
<%= 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 …Run Code Online (Sandbox Code Playgroud) ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我想在我的网站的标题中添加一个登录表单.我使用Rails 3.2.8和最新的Devise.在app/views/devise/sessions/new.html.erb文件中创建登录表单:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'main'}) do |f| %>
<div><%= f.label :login %> <%= f.text_field :login, :placeholder => 'Enter username' %></div>
<div><%= f.label :password %> <%= f.password_field :password, :placeholder => 'Enter password' %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<%= f.submit "Go" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果我尝试复制该代码并将其放入我的代码中application.html.erb,我会收到有关上面引用的资源变量的错误:
undefined local variable or method `resource' for #<#<Class:0x3cb62c8>:0x3c73b00>
Run Code Online (Sandbox Code Playgroud)
那么我可以使用普通的rails形式/users/sign_in作为动作吗?如何在登录后告诉设计重定向到哪里?
login ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-3.2