0

Rails 4 から session_store が削除されたことは知っています。

だから私はそれをインストールしようとしますが、いくつかのエラーがあります:

Gemfile

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'

# Use sqlite3 as the database for Active Record
gem 'sqlite3'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'activerecord-session_store', github: 'rails/activerecord-session_store', plataform: :mri

コンソール

バンドルのインストール
C:\Sites\rails-estudo-blog>bundle install
Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.8.0)
Using atomic (1.1.14)
Using thread_safe (0.1.3)
Using tzinfo (0.3.37)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0)
Using coffee-script-source (1.6.3)
Using execjs (2.0.1)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using coffee-rails (4.0.0)
Using hike (1.2.3)
Using jbuilder (1.5.1)
Using jquery-rails (3.0.4)
Using json (1.8.0)
Using bundler (1.3.5)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.0)
Using rails (4.0.0)
Using rdoc (3.12.2)
Using sass (3.2.10)
Using sass-rails (4.0.0)
Using sdoc (0.3.20)
Using sqlite3 (1.3.8)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

C:\Sites\rails-estudo-blog>
gem をインストールしてみる
C:\Sites\rails-estudo-blog>rails generate active_record:session_migration
Could not find generator active_record:session_migration.    
セッション ストアの移行を作成しようとしています
C:\Sites\rails-estudo-blog>rails generate active_record:session_migration
Could not find generator active_record:session_migration.

C:\Sites\rails-estudo-blog>

インフォメーション

  • レール4.0
  • ルビー2.0
  • Windows 7 x64 プロフェッショナル

どうしたの?リポジトリのすべての手順に従います: https://github.com/rails/activerecord-session_store


動作します!

ファイルを書き直して動作します(問題はわかりません)が、別の問題があります(プロキシを使用しています)。

$ bundle install
Fetching git://github.com/rails/activerecord-session_store.git
fatal: unable to connect to github.com:
github.com[0: 192.30.252.129]: errno=No error

Git error: command `git clone
"git://github.com/rails/activerecord-session_store.git"
"c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/cache/bundler/git/activerecord-session_store-cf0cfe22b7614cc4fcd416e139ff2bd62ebd6f1d"
--bare --no-hardlinks` in directory c:/Sites/rails-estudo-blog has failed.

解決済み

URLを次のように変更して問題を解決できます。

gem 'activerecord-session_store', git: 'https://github.com/rails/activerecord-session_store'

そこで、githubgitに変更し、必要な URL 全体を配置します。

ありがとう!


4

1 に答える 1

2

新しい回答で更新:

あなたが Gemfile 全体を提供した後、私はそれをコピーして直接試しました。私はあなたが抱えていたのと同じ問題を見ました。だから、私は行を再入力しました。出来た。行内で何が間違っているのか正確には言えませんが、これは機能します:

gem 'activerecord-session_store', github: 'rails/activerecord-session_store'

コピーして試してみてください。それでも失敗する場合は、削除して再入力してください。元の行は何のメッセージも理由もなく無視され、バンドルは成功しましたが、この gem を見逃していました。新しく入力された行は機能しました。図に行きます。

「plataform: :mri」を省略し、無関係だったので「platform: :mri」に修正しました。

私の元の回答で以下に概説されている手順に従ってください。それらはまだ適用されます。

私にお知らせください..

新しい回答で更新を終了します。古い答えは次のとおりです。

Gemfile を更新し、bundle install を実行して、これを試してみました。その結果、目的の gem が追加され、git からの最初のフェッチを確認できます (これは Rubymine で実行されたため、複雑なコマンド ラインです)。

D:\BitNami\rubystack-1.9.3-12\ruby\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:/BitNami/rubystack-1.9.3-12/projects/utilities/bin/bundle install
Fetching git://github.com/rails/activerecord-session_store.git
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
...
Using activerecord-session_store (0.0.1) from git://github.com/rails/activerecord-session_store.git (at master) 
...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Process finished with exit code 0

ステータスを確認したところ、次のことがわかりました。

D:\BitNami\rubystack-1.9.3-12\projects\utilities\app\helpers>bundle show activerecord-session_store
D:/BitNami/rubystack-1.9.3-12/ruby/lib/ruby/gems/1.9.1/bundler/gems/activerecord-session_store-022d45b4ae9b

生成を実行すると、移行が作成されました。

D:\BitNami\rubystack-1.9.3-12\projects\utilities>rails generate active_record:session_migration
      create  db/migrate/20131002090526_add_sessions_table.rb

移行は次のとおりです。

class AddSessionsTable < ActiveRecord::Migration
  def change
    create_table :sessions do |t|
      t.string :session_id, :null => false
      t.text :data
      t.timestamps
    end

    add_index :sessions, :session_id, :unique => true
    add_index :sessions, :updated_at
  end
end

興味深いことに、バンドルと生成が機能していたにもかかわらず、gem リストには期待どおりの gem が表示されませんでした。

D:\BitNami\rubystack-1.9.3-12\projects\utilities>gem list activerecord-session_store
*** LOCAL GEMS ***

D:\BitNami\rubystack-1.9.3-12\projects\utilities>gem list activerecord-session_store -r
*** REMOTE GEMS ***
activerecord-session_store (0.0.1)

しかし、 gem install は次のことを修正しました:

D:\BitNami\rubystack-1.9.3-12\projects\utilities>gem install activerecord-session_store
Fetching: activerecord-session_store-0.0.1.gem (100%)
Successfully installed activerecord-session_store-0.0.1
1 gem installed
D:\BitNami\rubystack-1.9.3-12\projects\utilities>gem list activerecord-session_store
*** LOCAL GEMS ***
activerecord-session_store (0.0.1)

推奨事項:

  1. gem install を実行して、インストールされていることを確認します。
  2. gem リストを実行して再確認します。
  3. バンドルを最初からビルドするには、bundle install ではなく bundle update を実行します。
  4. リストをチェックして、gem が期待どおりに含まれていることを確認します。
  5. bundle show を実行して再確認します。もう一度...
  6. rails generate を実行してマイグレーションを生成します。

If the migration fails to run again, check your gem storage for the generator in your gem storage:

.../gem/activerecord-session_store-0.0.1/lib/active_record/session_store.rb
于 2013-10-02T09:31:59.967 に答える