30

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 兼容的版本。

Fetching: 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

但它说

ERROR:  Could not find a valid gem 'devise' (= 3.0.0.rc1) in any repository
ERROR:  Possible alternatives: devise
4

6 回答 6

92

截至本答案发布时,Devise 现在与 Rails 4 开箱即用兼容。

我们的最终目标是让用户能够注册、登录和退出网站。我们还将创建一个小的局部视图,让我们知道我们是否已登录或退出。


安装设计 gem。

打开Gemfile并安装 Devise gem。

gem 'devise'

然后在您的终端中运行bundle install命令来安装 gem。

$ bundle install

运行一些设计生成器来设置初始配置。

从您的终端运行此命令:

rails generate devise:install

该生成器安装了配置所有 Devise 可用设置的初始化程序。

生成您的用户模型。

接下来我们需要生成我们的用户模型。我要给它命名,User但你可以随意命名,只需替换UserWhatever.

rails generate devise User
rake db:migrate

为 Development.rb 配置默认 URL 选项

在 内部config/environments/development.rb,将 Action Mailer 的默认 URL 设置为 localhost:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

确保您在 Routes.rb 中声明了根路由

你需要确保它routes.rb有一个默认的根路由——如果你没有,设置它!

root to: 'home#index'

创建一个局部视图以查看我们是否已登录。

在您的views/layouts文件夹中创建一个名为的文件_user_widget.html.erb并将此代码复制到:

<% if user_signed_in? %>
  <p>Welcome <%= current_user.email %></p>
  <%= link_to 'Logged In [click to logout]', destroy_user_session_path, :method => :delete %>
<% else %>
  <p>You are not signed in.</p>
  <%= link_to 'Login', new_user_session_path %>
<% end %>

并在您的布局 ( views/layouts/application.html.erb) 中调用它:

<!DOCTYPE html>
  <html>
  <head>
    <title>FacebookAuthTest</title>
    <%= stylesheet_link_tag    "application", media: "all" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
  </head>
  <body>

  <p class="notice"><%= notice %></p>
  <p class="alert"><%= alert %></p>

  <%= yield %>

  <%= render 'layouts/user_widget' %>

</body>
</html>

确保您停止并重新启动服务器,否则您会发现各种讨厌的错误!当您更新 gemfile 或更改环境配置文件中的任何内容时,最好重新启动本地服务器。

完成所有这些后,您应该能够从您自己的 Rails 网站注册、登录和注销。

如果您有任何问题,请随时在下面发表评论,我会尽力提供帮助。

于 2013-11-21T14:22:46.757 回答
30

2013 年 9 月 17 日更新:master 分支现在与 Rails 4 兼容。无需搜索其他版本。

查看github repo,看起来你想要版本3.0.0.rc(没有 1)。所以你会想要

gem install devise --version "3.0.0.rc"

或者,在您的 gemfile 中:

gem 'devise', '3.0.0.rc'
于 2013-05-12T23:39:31.140 回答
3

这安装了它

gem install devise --pre

或者

devise-3.0.0.rc.gem
于 2013-05-12T23:50:31.680 回答
2

在这一点上,这个版本的 gem 就是你想要使用的

gem 'devise', '3.0.0'
于 2013-07-27T04:02:27.803 回答
1

gem '设计',github:'plataformatec/devise',分支:'rails4'

于 2013-07-30T11:12:27.333 回答
1

现在 3.0 版本稳定了,你可以这样做:

gem install devise

或在您的 Gemfile 中:

gem 'devise'
于 2013-09-04T05:22:31.837 回答