【发布时间】:2017-07-11 12:23:52
【问题描述】:
我创建了一个用户模型如下:
class User < ActiveRecord::Base
self.table_name = 'User'
end
用户表具有列状态,其值为 0 和 1
我想在 json 的字符串中显示状态值。当用户状态为 0 时显示为非活动状态,当其为 1 时显示为活动状态。
我怎样才能创建一个可以进行这种转换的方法?
我将在控制器中调用该方法并将结果保存在实例变量中并在视图中调用该实例变量。
谢谢
【问题讨论】:
-
self.table_name = 'User'- 这一次违反了一些约定:D -
你能告诉我我做错了什么吗?我是 ruby on rails 的新手
-
当然。首先,按照惯例,表名应该是模型名的复数形式,Rails 会自动识别它(只有当你的表名不符合上述规定时,你才需要
self.table_name)。所以要遵守约定,你的表名应该叫users(小写,复数)然后你可以完全删除self.table_name -
同意,最好将您的表命名为
users而不是User。这是 Rails 约定,可以省去很多麻烦。当然,如果您由于某种原因无法控制架构,或者您正在构建旧版应用程序,那么像您所做的那样设置 table_name 是一种可以接受的解决方法。
标签: ruby-on-rails ruby