Bra*_*cil 30 ruby-on-rails bundler devise
Devise背后的团队通过blogpost 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%)
Run Code Online (Sandbox Code Playgroud)
我从blogpost中关于强参数的评论中假设我不能与Rails 4兼容.
我查看了Devise的github页面,但对我来说,如何安装与Rails 4兼容的版本并不明显.你能帮忙吗?
https://github.com/plataformatec/devise
注意,我试过了
gem install devise --version 3.0.0.rc1
Run Code Online (Sandbox Code Playgroud)
但它说
ERROR: Could not find a valid gem 'devise' (= 3.0.0.rc1) in any repository
ERROR: Possible alternatives: devise
Run Code Online (Sandbox Code Playgroud)
ser*_*erg 92
在本回答的时候,Devise现在与开箱即用的Rails 4兼容.
我们的最终目标是让用户能够注册,登录和注销网站.我们还将创建一个小型局部视图,让我们知道我们是否已登录或退出.
打开你的Gemfile
并安装Devise gem.
gem 'devise'
Run Code Online (Sandbox Code Playgroud)
然后在你的终端运行bundle install
命令来安装gem.
$ bundle install
Run Code Online (Sandbox Code Playgroud)
从终端运行此命令:
rails generate devise:install
Run Code Online (Sandbox Code Playgroud)
此生成器安装初始化程序,用于配置Devise的所有可用设置.
接下来我们需要生成用户模型.我将它命名User
,但你可以命名为任何你喜欢的,只需更换User
用Whatever
.
rails generate devise User
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
在里面config/environments/development.rb
,将Action Mailer的默认URL设置为localhost:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Run Code Online (Sandbox Code Playgroud)
你需要确保它routes.rb
有一个默认的根路由 - 如果你没有,请设置它!
root to: 'home#index'
Run Code Online (Sandbox Code Playgroud)
在您的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 %>
Run Code Online (Sandbox Code Playgroud)
并在你的layout(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>
Run Code Online (Sandbox Code Playgroud)
确保你停止并重新启动服务器,否则你会发现各种令人讨厌的错误!在更新gemfile或更改环境配置文件中的任何内容时,最好重新启动本地服务器.
有了这一切,您应该能够注册,登录并从您自己的Rails网站注销.
如果您有任何问题,请随时在下面发表评论,我会尽力提供帮助.
Zai*_*uch 30
更新于2013年9月17日:主分支现在与Rails 4兼容.无需搜索其他版本.
看看github repo,看起来你想要版本3.0.0.rc
(没有1).所以你会想要的
gem install devise --version "3.0.0.rc"
Run Code Online (Sandbox Code Playgroud)
或者,在你的gemfile中:
gem 'devise', '3.0.0.rc'
Run Code Online (Sandbox Code Playgroud)