ruby-on-rails - Ruby on Rails - 我可以在调用之前修改属性的值吗?

标签 ruby-on-rails ruby model attributes

假设我有一个名为 Product 的模型,其中有一个名为 brand 的字段。假设 brand 的值以 this_is_a_brand 格式存储。我可以在模型(或其他任何地方)中定义一个方法,允许我在调用 brand 之前修改它的值吗?例如,如果我调用 @product.brand,我想得到 This is a Brand,而不是 this_is_a_brand

最佳答案

我建议使用方括号语法([][]=)而不是 read_attributewrite_attribute。方括号语法更短并且 designed to wrap the protected read/write_attribute methods .

def brand
  original = self[:brand]
  transform(original)
end

def brand=(b)
  self[:brand] = reverse_transform(b)
end

关于ruby-on-rails - Ruby on Rails - 我可以在调用之前修改属性的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181652/

相关文章:

ruby-on-rails - 有没有 "Ruby on Rails gem"这样的东西?

ruby-on-rails - Rails 三种开发模式的区别

ruby-on-rails - Twitter API 通过 Rails 3 上的 OmniAuth,Net::HTTPUnauthorized hell

ruby-on-rails - 守卫 rspec-rails : run only model specs

php - wasRecentlyCreated 和 wasChanged 不起作用

go - go中动态调用模型

Django:在 ManyToManyField 中获取属于模型对象的第一个项目

ruby-on-rails - capybara Chrome headless (headless)确认对话框

ruby - 在 sinatra 中的路由定义中使用参数

ruby-on-rails - 找不到带下划线的路线或没有正确对待它