Its*_*ner 3 ruby postgresql ruby-on-rails
我的数据库中有一个Hotels表,其中一列是:status(integer).我期待将这些整数转换成字符串,所以1 = "Awaiting Contract",2 = "Designing"等等...
我已经搜索了Stack的一些答案,而缺少它们让我觉得我是从错误的角度来解决这个问题的?我以前在PHP中执行此操作同时提取数据.对Rails有新意见,所以我们非常感谢任何帮助或最佳实践建议.
Paw*_*zak 10
检查enum的ActiveRecord- 文档.
在这里你可以配置你的:status:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def format_status
status.to_s.humanize
end
end
Run Code Online (Sandbox Code Playgroud)
它会创建这样的方法:
hotel.waiting_contract?
hotel.designing?
hotel.waiting_contract!
hotel.format_status # => "Waiting contract"
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
UPDATE
通过覆盖status方法本身可以实现类似的功能,尽管建议使用单独的方法:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def status
super.to_s.humanize
end
end
Run Code Online (Sandbox Code Playgroud)
此外,装饰器是您应该查看特定于视图的方法的东西.
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |