使用字符串分配rails关联

时间:2012-03-29 20:48:16

标签: ruby-on-rails activerecord

说我有两个模型,一个属于另一个。现在,通常在填充字段时将对象分配给关联。 rails是否允许覆盖set方法,以便可以自定义关联分配?

E.g

class Person
  # something about shirts
end

class Shirt
  belongs_to :person

  def person=(p)
    self.person = Person.find_or_create_by_name(p)
  end
end

然后使用类似的东西自动绑定关联,但使用字符串自动进行搜索和绑定。这可能吗?

s = Shirt.new

s.person =“测试人员”

由于

1 个答案:

答案 0 :(得分:3)

ROR指南涵盖了您需要的association extension

更新: 实际上,一旦你理解了你正在做的事情,压倒二传手并不是那么糟糕。但是你必须要小心,因为它会导致无限循环(如你的例子中所示)。因此,如果您使用的是Rails 3.2,则必须use super,否则您必须使用alias_method_chain