Ruby on rails 如何让attr_访问器真正在rails中工作?
下面是对我有用的代码片段 用户模型Ruby on rails 如何让attr_访问器真正在rails中工作?,ruby-on-rails,ruby-on-rails-3.2,attr-accessor,Ruby On Rails,Ruby On Rails 3.2,Attr Accessor,下面是对我有用的代码片段 用户模型 class User < ActiveRecord::Base def full_name [first_name,last_name].join(" ") end def full_name=(name) split = name.split(" ",2) self.first_name = split.first self.last_name = split.last end end 所以我试着
class User < ActiveRecord::Base
def full_name
[first_name,last_name].join(" ")
end
def full_name=(name)
split = name.split(" ",2)
self.first_name = split.first
self.last_name = split.last
end
end
所以我试着
class User < ActiveRecord::Base
attr_accessor :full_name
end
class用户
我不知道还应该做些什么
提交表单时,is既不会在显示页面中显示完整的名称,也不会在数据库中更新相同的名称。这是不正确的<代码>属性访问器的工作原理类似
def full_name
@full_name
end
def full_name=(value)
@full_name = value
end
它只是为实例变量创建基本getter/setter。如果您需要任何类型的高级处理(在您的案例中是拆分/联接),您需要自己定义getter和setter方法。我在想是否可以使用attr\u访问器。这并不能解释所遇到问题的解决方案,即问题。
def full_name
[first_name,last_name].join(" ")
end
def full_name=(name)
split = name.split(" ",2)
self.first_name = split.first
self.last_name = split.last
end
class User < ActiveRecord::Base
attr_accessor :full_name
end
def full_name
@full_name
end
def full_name=(value)
@full_name = value
end