0

デバイスを認証システムとして使用して、ユーザー登録でプロファイルを作成したいと考えています。

SO でこれに関する多くのトピックを読み、モデル内でプロファイルを構築するアプローチを取ることにしました。

profile.rb

class Profile < ActiveRecord::Base
  belongs_to :user

  attr_accessible :user_id, # FIXME This is secure?
end

user.rb

class User < ActiveRecord::Base

  devise ...

  has_one :profile
  accepts_nested_attributes_for :profile

  def build_profile
    Profile.create(:user_id => id)
  end

end

私の2つの質問は次のとおりです。

attr_accessible に user_id を入れるのは危険ですか (大量割り当て)?

トランザクションを使用してプロファイル作成をコントローラー (登録作成) に配置する必要がありましたか? (プロファイルの作成に失敗した場合、まだユーザー レコードが残っています)

4

1 に答える 1

2

attr_accessible に user_id を入れるのは危険ですか (大量割り当て)?

はい、ほとんどの場合、外部キーを attr_accessible に追加することは避けてください。

トランザクションを使用してプロファイル作成をコントローラー (登録作成) に配置する必要がありましたか? (プロファイルの作成に失敗した場合、まだユーザー レコードが残っています)

validates_associated :profileユーザーモデルを追加するだけで、おそらくvalidates :profile, presence: true(validates_associatedがnilを許可するかどうかを忘れていました)

于 2013-06-15T14:45:15.953 に答える