使用 Rails 设计 4 [英] Devise with Rails 4
问题描述
Devise 背后的团队通过博文宣布http://blog.plataformatec.com.br/2013/05/devise-and-rails-4/ 它发布了一个与 Rails 4 兼容的版本,称之为3.0 rc".在同一篇博文中,它还表示将发布 Devise 2.2.4.
我正在尝试构建一个 Rails 4 应用程序.当我执行 gem install Devise
时,它安装了 2.2.4,而不是与 Rails 4 兼容的版本.
获取:devise-2.2.4.gem (100%)
我从博客文章中关于强参数的评论中假设这与 Rails 4 不兼容.
我查看了 Devise 的 github 页面,但我不清楚如何安装与 Rails 4 兼容的版本.你能帮忙吗?
https://github.com/plataformatec/devise
注意,我试过了
gem install devise --version 3.0.0.rc1
但它说
错误:在任何存储库中都找不到有效的 gem 'devise' (= 3.0.0.rc1)错误:可能的选择:设计
截至本回答发布时,Devise 现在与 Rails 4 兼容.
我们的最终目标是让用户能够注册、登录和退出网站.我们还将创建一个小的局部视图,让我们知道我们是否已登录.
<小时>安装 Devise gem.
打开你的 Gemfile
并安装 Devise gem.
gem '设计'
然后在您的终端中运行 bundle install
命令来安装 gem.
$ 捆绑安装
运行一些设计生成器来设置初始配置.
从终端运行此命令:
rails 生成设计:安装
这个生成器安装了用于配置所有 Devise 可用设置的初始化器.
生成您的用户模型.
接下来我们需要生成我们的用户模型.我将其命名为 User
,但您可以随意命名,只需将 User
替换为 Whatever
.
rails 生成设计用户耙数据库:迁移
为 Development.rb 配置默认 URL 选项
在 config/environments/development.rb
中,将 Action Mailer 的默认 URL 设置为 localhost:
config.action_mailer.default_url_options = { :host =>'本地主机:3000' }
确保你在 Routes.rb 中声明了一个根路由
你需要确保 routes.rb
有一个默认的根路由 - 如果你没有,设置它!
root 到:'home#index'
创建局部视图以查看我们是否已登录.
在您的 views/layouts
文件夹内创建一个名为 _user_widget.html.erb
的文件并将此代码复制到:
<% if user_signed_in?%><p>欢迎<%= current_user.email %></p><%= link_to '登录 [点击退出]', destroy_user_session_path, :method =>:删除%><%其他%><p>您尚未登录.</p><%= link_to '登录', new_user_session_path %><%结束%>
并在您的布局中调用它(views/layouts/application.html.erb
):
<头><title>FacebookAuthTest</title><%= stylesheet_link_tag "application", media: "all" %><%= javascript_include_tag "应用程序" %><%= csrf_meta_tags %>头部><身体><p class="notice"><%= notice %></p><p class="alert"><%=alert%></p><%=产率%><%= 渲染 'layouts/user_widget' %>