ruby-on-rails - 用Rails设计4

标签 ruby-on-rails devise bundler

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

最佳答案

从此回答之时起,Devise现在即可与Rails 4兼容。

我们的最终目标是使用户能够注册,登录和注销网站。我们还将创建一个小的局部 View ,告知我们是否已登录或注销。

安装Devise gem。

打开Gemfile并安装Devise gem。

gem 'devise'

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

运行一些Devise生成器以设置初始配置。

从终端运行以下命令:
rails generate devise:install

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

生成用户模型。

接下来,我们需要生成我们的用户模型。我将其命名为User,但您可以随意命名,只需将User替换为Whatever即可。
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'

创建局部 View 以查看是否已登录。

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>

Make sure you stop and restart the server otherwise you will find all sorts of nasty bugs! It's always best to restart your local server when you update your gemfile or change anything in the environment configuration file.



完成所有这些操作后,您应该可以从自己的Rails网站上注册,登录和注销。

如果您有任何疑问,请在下面留下评论,我将尽力提供帮助。

关于ruby-on-rails - 用Rails设计4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513066/

相关文章:

ruby-on-rails - 查找多态关联或 nil 的记录

ruby-on-rails - 如何访问stimulus_reflex中的current_user

ruby-on-rails-4 - 设计更改电子邮件不会更新电子邮件

ruby-on-rails - 忘记密码设计 gem API

ruby-on-rails - 搜索项目所有 gem 源代码的最佳方式

ruby - 在任何来源中都找不到 rake-0.9.2

ruby-on-rails - Heroku:预编译 Assets 失败

ruby-on-rails - Rails 3 找不到静态页面的路由

ruby-on-rails - rails 3 + 设计 : on after_inactive_sign_up_path_for() how show the not-yet-confirmed user's email address?

ruby-on-rails - bundle : Permission denied