30

Devise の背後にあるチームは、ブログ投稿 http://blog.plataformatec.com.br/2013/05/devise-and-rails-4/を通じて、「3.0 rc」と呼ばれる Rails 4 と互換性のあるバージョンをリリースすると発表しました。 . 同じブログ投稿で、それはまた、それがリリースされていると述べましたDevise 2.2.4.

Rails 4 アプリを作成しようとしています。私が行ったときgem install Devise、Rails 4と互換性のあるバージョンではなく、2.2.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 is now compatible with Rails 4 out of the box as of the time of this answer.

Our end goal is to have users be able to register, log in and log out of the website. We'll also create a small partial view letting us know if we're logged in or out.


Install the Devise gem.

Open up your Gemfile and install the Devise gem.

gem 'devise'

Then in your terminal run the bundle install command to install the gem.

$ bundle install

Run some Devise generators to set up the initial configurations.

Run this command from your terminal:

rails generate devise:install

This generator installs the initializer that configures all of Devise's available settings.

Generate your User model.

Next we need to generate our User model. I'm going to name it User but you can name it whatever you like, just replace User with Whatever.

rails generate devise User
rake db:migrate

Configure your default URL option for Development.rb

Inside of config/environments/development.rb, set the Action Mailer's default URL to localhost:

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

Make sure you have a root route declared in Routes.rb

You need to make sure that routes.rb has a default root route - if you don't have one, set it!

root to: 'home#index'

Create a partial view to see if we're logged in or not.

Inside of your views/layouts folder create a file named _user_widget.html.erb and copy this code in:

<% 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 %>

And invoke it within your 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>

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.

With all this in place, you should be able to sign up, log in and log out from your very own Rails website.

If you have any questions feel free to leave a comment below and I'll try to help.

于 2013-11-21T14:22:46.757 に答える
30

2013 年 9 月 17 日更新: master ブランチは Rails 4 と互換性を持つようになりました。別のバージョンを探す必要はありません。

github repoを見ると、バージョン3.0.0.rc(no 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

3.0バージョンが安定したので、次のことができます:

gem install devise

またはあなたのGemfileで:

gem 'devise'
于 2013-09-04T05:22:31.837 に答える