我是Devise粉丝,并且在我的许多Ruby on Rails应用程序中使用了Devise。
我通常按照下面的RailCasts来安装和定制Devise。
http://railscasts.com/episodes/209-introducing-devise
http://railscasts.com/episodes/210-customizing-devise
视频告诉我们,如果我们想要自定义视图,我们需要运行以下命令 -
rails generate devise:views
这将在apps / views / devise文件夹中创建与身份验证相关的视图。我们可以自定义外观。
我的问题是 - 我们如何允许多个观看次数才能登录?例如 - 我希望允许用户能够通过单击导航栏上的“登录”按钮从Root页面登录,该按钮会导致模式框(覆盖/弹出窗口),允许用户输入他的登录凭据,而不是必须访问由Devise生成的预定义页面。
您可以查看以下链接,查看我正在处理的项目。
尝试单击“登录”按钮。我想在这里签字。
答案 0 :(得分:1)
你看到的railscast剧集太旧了(2010年4月12日),最新的Devise版本是2.0。所以我认为一些功能已被弃用。
对于你的问题:如果你想拥有2个不同的页面(例如1是一个对话框/由ajax弹出,另一个是常规的erb页面),你必须实现2个不同的动作,或者至少你必须实现2个不同的策略。 e.g。
# will render app/views/.../regular_login.html.erb
def regular_login
end
# render a dialog box only.
def dialog_login
render :layout => false
end
答案 1 :(得分:1)
我从这篇文章中找到了一个优雅的解决方案..
它显示了我们如何通过使用form_for和发布到user_session_path
来实现这一目标<%= form_for("user", :url => user_session_path) do |f| %>
<%= f.text_field :email %>
<%= f.password_field :password %>
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
<%= f.submit 'Sign in' %>
<%= link_to "Forgot your password?", new_password_path('user') %>
<% end %>