私は以前このフォーラムのgemを使っていましたが、コンソールを使ってforem_adminを "true"に設定することもできました。ただし、今回は、保存しようとするとトランザクションがロールバックされます。レールにatttributeを設定するconsole - トランザクションロールバック
私はforem_adminを "true"に設定して保存しました。トランザクションをロールバックしました(つまり保存しなかったことを意味します)。私は "u"してforem_admin = trueを示しました。 forem_admin = falseを示したコンソールを再起動しました。
この宝石に精通している人なら、私はこのforem_state属性が新しいと思うので、何か変更があるかどうか疑問に思います。
私はプロのSQLないんだけど、私には面白いに見える一つのことは、私はそれが無いと"users"."id" = 5
すなわちていたと期待したライン
"users"."id" != 5
である「!」、のID理由私はu.save後u.errors
を行うときに、ユーザー「signuplinksは」、私はこのエラーメッセージ
5.
されます
@messages={:password=>["can't be blank"]}
コンソール
ruby-1.9.3-rc1 :001 > u = User.last
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 5, email: "[email protected]", encrypted_password: "$2a$10$axjwcO.kU4/mqC9Llyj.b.r/2jJULnWKmG7Pi3Zu1AE3...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2012-03-05 03:37:59", last_sign_in_at: "2012-03-05 03:37:59", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", confirmation_token: nil, confirmed_at: "2012-03-05 03:37:58", confirmation_sent_at: "2012-03-05 03:34:33", unconfirmed_email: nil, created_at: "2012-03-05 03:34:33", updated_at: "2012-03-05 03:37:59", name: "signuplinks", country: "Canada", image: "3.png", forem_admin: false, forem_state: "pending_review">
ruby-1.9.3-rc1 :002 > u.forem_admin = true
=> true
ruby-1.9.3-rc1 :003 > u.save
(0.1ms) begin transaction
User Exists (0.2ms) SELECT 1 FROM "users" WHERE (LOWER("users"."name") = LOWER('signuplinks') AND "users"."id" != 5) LIMIT 1
User Exists (0.1ms) SELECT 1 FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 5) LIMIT 1
(0.1ms) rollback transaction
=> false
ruby-1.9.3-rc1 :004 > u
=> #<User id: 5, email: "[email protected]", encrypted_password: "$2a$10$axjwcO.kU4/mqC9Llyj.b.r/2jJULnWKmG7Pi3Zu1AE3...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2012-03-05 03:37:59", last_sign_in_at: "2012-03-05 03:37:59", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", confirmation_token: nil, confirmed_at: "2012-03-05 03:37:58", confirmation_sent_at: "2012-03-05 03:34:33", unconfirmed_email: nil, created_at: "2012-03-05 03:34:33", updated_at: "2012-03-05 03:37:59", name: "signuplinks", country: "Canada", image: "3.png", forem_admin: true, forem_state: "pending_review">
ruby-1.9.3-rc1 :005 > exit
Michael-Pro:ic michl$ rails c
Loading development environment (Rails 3.2.1)
ruby-1.9.3-rc1 :001 > u = User.last
User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 5, email: "[email protected]", encrypted_password: "$2a$10$axjwcO.kU4/mqC9Llyj.b.r/2jJULnWKmG7Pi3Zu1AE3...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2012-03-05 03:37:59", last_sign_in_at: "2012-03-05 03:37:59", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", confirmation_token: nil, confirmed_at: "2012-03-05 03:37:58", confirmation_sent_at: "2012-03-05 03:34:33", unconfirmed_email: nil, created_at: "2012-03-05 03:34:33", updated_at: "2012-03-05 03:37:59", name: "signuplinks", country: "Canada", image: "3.png", forem_admin: false, forem_state: "pending_review">
宝石の名前は何ですか? Userモデルで失敗している検証ステップがあるようです。保存しようとした後、 'u.errors'を実行してその出力をポストします。 – wpgreenway
おそらく 'u.id'は5なので、" signuplinks "という名前/電子メールを持ち、' u'ではない(すなわち 'id!= 5')人々を探しています。名前と電子メールの一意性検査と検証プロセスの一部です。 'u.forem_admin = true'の副作用は何ですか?舞台裏でメールアドレスや名前が変更されていますか?管理者は1人だけですか?管理者について興味深いものは何ですか? –
@wpgreenway更新されたOP。パスワードの空白のエラーメッセージが表示されます。なぜか分からない。 – Leahcim