如果我有一个RoR模型person.rb如下:
class Person < ActiveRecord::Base attr_accessible :first_name,:last_name validates :first_name,presence: true validates :last_name,presence: true end
我似乎无法做以下任何事情:
@full_name = @first_name + " " + @last_name
要么
def full_name @first_name + " " + @last_name end
根据我的理解,这两个应该适用于常规的ruby类.
我做了一些阅读,下面似乎是要走的路:
def full_name self.first_name + " " + self.last_name end
我可以做这个工作,但我真的很想理解为什么我似乎无法以任何方式引用实例变量(也不能创建新的变量).
ActiveRecord :: Base是否对实例变量做了一些非常有趣的事情?它是否限制模型(在这种情况下为Person类)仅仅是围绕数据库中的内容的包装器?
我似乎无法定义attr_accessor …但我可以设置first_name和last_name就好了(不仅通过质量赋值而且p = Person.new; p.first_name = foo)
如果有人能够对此有所了解,我将不胜感激.
非常感谢,