web-dev-qa-db-ja.com

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と互換性のあるバージョンではありません。

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
30

Deviseは、この回答の時点で、すぐに使用できるRails 4と互換性があります。

最終目標は、ユーザーがWebサイトに登録、ログイン、ログアウトできるようにすることです。また、ログインしているかログアウトしているかを知らせる小さな部分ビューを作成します。


Devise gemをインストールします。

Gemfileを開いて、Devise gemをインストールします。

gem 'devise'

次に、ターミナルでbundle installコマンドを実行してgemをインストールします。

$ bundle install

いくつかのDeviseジェネレーターを実行して、初期構成をセットアップします。

端末から次のコマンドを実行します。

Rails generate devise:install

このジェネレーターは、Deviseの使用可能なすべての設定を構成する初期化子をインストールします。

ユーザーモデルを生成します。

次に、ユーザーモデルを生成する必要があります。名前はUserにしますが、好きな名前を付けることができます。UserWhateverに置き換えてください。

Rails generate devise User
rake db:migrate

Development.rbのデフォルトURLオプションを構成します

config/environments/development.rb内で、アクションメーラーのデフォルト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ウェブサイトからサインアップ、ログイン、ログアウトできるようになります。

ご不明な点がございましたら、下にコメントを残してください。私がお手伝いします。

92
sergserg

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'
30
Zaid Crouch

これはそれをインストールしました

gem install devise --pre

または

devise-3.0.0.rc.gem

この時点で、gemのこのバージョンは、使用したいものです。

gem 'devise', '3.0.0'
2
Dhaulagiri

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

gem install devise

またはGemfileで:

gem 'devise'
1
Spone

gem 'devise'、github: 'plataformatec/devise'、ブランチ: 'Rails4'

1
Kirsty Williams