让我们假设我有一个如下所示的MySQL表。
create table users (
id int,
full_name varchar(30)
);
我想用User.new(id: 1, first_name: "Michael", last_name: "Jackson")
创建一个模型,但ActiveRecord引发了unknown attribute 'first_name' for User.
。User
类只是一个例子,我希望它是一个元类(就像Employee < User
)。所以,创建build
方法并不是我真正想要的方式。
class User
attr_accessor :first_name, :last_name
before_create :create_full_name
def create_full_name
self.full_name = "#{first_name} #{last_name}"
end
end
user = User(id: 1)
user.first_name = "Michael"
user.last_name = "Jackson"
已经很接近了,但这需要外部的额外任务。我不想要这种裁员。
有什么办法可以做到这一点吗?
1条答案
按热度按时间ivqmmu1c1#
您可以使用初始化方法来设置属性。您还可以使用Send方法来设置属性。例如: