2

私の User モデルにはフィールドがありませんが、サインアップ フォームにフィールド:nameを含めたいと考えています。このフィールドを使用して、別のモデルのレコードを.:nameafter_create

class User < ActiveRecord::Base
  after_create :create_thing

private
  def create_thing
    @thing = Thing.new
    @thing.name = <here's where I need help>
    @thing.save!
  end
end

サインアップフォームから名前を取得するにはどうすればよいですか?

4

2 に答える 2

2

@trhが言ったように、attr_accessorを使用できますが、何らかのロジックを実行する必要がある場合は、attr_accessorに付随するゲッターおよび/またはセッターメソッドを作成する必要があります。

class User < ActiveRecord::Base
  attr_accessor :name
  after_create :create_thing

  def name
    #if need be do something to get the name 
    "#{self.first_name} #{self.last_name}"
  end

  def name=(value)
    #if need be do something to set the name 
    names = value.split
    @first_name = names[0]
    @last_name = names[1]
  end

  private
  def create_thing
    @thing = Thing.new
    @thing.name = self.name
    @thing.save!
  end
end
于 2013-09-29T21:18:13.280 に答える