2

私は Michael Hartl のチュートリアル (素晴らしいチュートリアルです!) に取り組んでいますが、第 6 章のセクション 6.3 安全なパスワードの追加でブロックにぶつかりました。

チュートリアルでは、「パスワードと *password_confirmation* を Users モデルに追加します...パスワード属性は仮想になります」と記載されています。これがおそらく、それらをデータベーススキーマに追加する移行がない理由です。

ただし、user.rb の attr_accessible 行の最後に追加しないと、MassAssignmentSecurity エラーが発生しますが、追加すると、

UnknownAttributeError:
   unknown attribute: password

github の user.rb コードには、属性が attr_accessible に追加されていますが、残りのコード (user_spec.rb も) は、後の章で追加されると思われるものを除いて同じです。

私は自分の間違いだと思って、この章を最初からやり直しましたが、まだ続きます...

インストールされている宝石は

Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.3.2) 
Using activesupport (3.2.3) 
Using builder (3.0.0) 
Using activemodel (3.2.3) 
Using erubis (2.7.0) 
Using journey (1.0.3) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.3) 
Using mime-types (1.18) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.3) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.3) 
Using activeresource (3.2.3) 
Using addressable (2.2.7) 
Using annotate (2.4.1.beta1) 
Using bcrypt-ruby (3.0.1) 
Using bootstrap-sass (2.0.0) 
Using nokogiri (1.5.2) 
Using ffi (1.0.11) 
Using childprocess (0.3.2) 
Using libwebsocket (0.1.3) 
Using rubyzip (0.9.8) 
Using selenium-webdriver (2.21.2) 
Using xpath (0.1.4) 
Using capybara (1.1.2) 
Using coffee-script-source (1.3.1) 
Using execjs (1.3.1) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.0) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.3) 
Using coffee-rails (3.2.2) 
Using diff-lcs (1.1.3) 
Using guard (1.0.1) 
Using guard-rspec (0.5.5) 
Using spork (0.9.0) 
Using guard-spork (0.3.2) 
Using jquery-rails (2.0.0) 
Using libnotify (0.5.9) 
Using bundler (1.1.3) 
Using rails (3.2.3) 
Using rb-inotify (0.8.8) 
Using rspec-core (2.9.0) 
Using rspec-expectations (2.9.1) 
Using rspec-mocks (2.9.0) 
Using rspec (2.9.0) 
Using rspec-rails (2.9.0) 
Using sass (3.1.16) 
Using sass-rails (3.2.5) 
Using sqlite3 (1.3.5) 
Using uglifier (1.2.3)

私の次のステップへの助けや指針をありがとう、

クリス

4

5 に答える 5

2

チュートリアルに従っているときに同じ問題に遭遇した後、 の呼び出しhas_secure_passwordの下にへの呼び出しを追加するのを忘れていたことに気付きました。attr_accessibleapp/models/user.rb

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation
  has_secure_password
  // rest of the code
end

UnknownAttributeErrorなくなり、すべてのテストに合格しました。

于 2012-10-16T01:00:36.537 に答える
1

モデルで仮想属性を次のように定義できます。

attr_accessor :password, :password_confirmation
于 2012-04-29T20:48:10.817 に答える
0

現在の 6.3 のサブセクションによっては、テストが失敗する場合があります。それらは最初に失敗するはずであり、次にコードを追加してそれらを「修正」し始めます。6.3.4 ではhas_secure_password、user.rb に追加することで、説明している問題を修正します。

于 2012-05-01T13:33:17.527 に答える
0

password および password_confirmaton に対してアクセス可能な属性で user.rb ファイルを変更した後

class User < ActiveRecord::Base
  attr_accessible :name, :email, :password, :password_confirmation
  has_secure_password
  .
  .
  .
end

保存することを忘れないでください!

于 2013-02-26T05:13:11.970 に答える