クリアランスの宝石を使用してウェブサイトに認証を追加します。 標準ユーザーモデルは次のようになります。レールを使用してユーザモデルにカスタムカラムを追加するクリアランスgem
class User < ActiveRecord::Base
include Clearance::User
end
今私は、ユーザーモデルにプロパティを追加します。
:それは次のようになりますので、次のステップは、私がユーザーモデルファイルを編集してCustomerNameの: 私はこの移行を作成しました:すくいデシベル後
class AddCustomernameToUsers < ActiveRecord::Migration
def change
add_column :users, :customername, :string
end
end
:移行、データベースには、今の1つの以上の列を持っています
class User < ActiveRecord::Base
include Clearance::User
attr_accessor :customername
end
次の手順として、新しいユーザーにサインアップし、sqliteデータベースブラウザを使用して、このユーザーの顧客名フィールドにテスト文字列 'charly'を追加しました。
私のコントローラーでは、ユーザーオブジェクトを作成して印刷して、すべてのデータが存在するかどうかを確認します。
thisUser = User.find(current_user.id)
puts thisUser.inspect
コンソール出力は、次のとおり
#<User id: 1, email: "[email protected]", encrypted_password: "0494a9b3b692acaea96ab57bed500adf26dbafa5", salt: "75c889d099438476204ce46b9cb406fb1f73423c", confirmation_token: nil, remember_token: "907b9bd600246d0b8dcc06a782457665f614b368", created_at: "2012-03-21 20:59:44", updated_at: "2012-03-21 21:12:59", customername: nil>
のでCustomerNameのはゼロです。どういうわけかこのフィールドのデータはデータベースから正しく引き出されません。
何が間違っていますか?
申し訳ありませんが、私はレールの初心者です。非常に単純なことかもしれませんが、私は一生懸命に試して、一日中グーグルで試してもうまくいきませんでしたので、スタックオーバーフローの賢明さに目を向けます。 ありがとうございます。
はこれを試してみました: thisUser = User.find(current_user.id) thisUser.customername = "ハリー" は私がこれを行う場合でも、CustomerNameのは、私はそれを得ることができた – Etienne678
nilをまだですthisUser.inspect を置きます別の認証宝石を使ってやったのですが、ここでも何が問題になったのか興味があります – Etienne678