我的数据库中有一个 Hotels 表,其中一列是:status
(integer
)。我正在寻找将这些整数转换为字符串,所以1 = "Awaiting Contract"
, 2 = "Designing"
等等...
我在 Stack 中搜索了一些答案,但缺乏答案让我觉得我是从错误的角度来看待这个问题的?我曾经在 PHP 中执行此操作,同时提取数据。对 Rails 来说还是个新手,所以任何帮助或最佳实践建议将不胜感激。
Check enum
of ActiveRecord
- doc http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html.
在这里您可以配置您的:status
:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def format_status
status.to_s.humanize
end
end
它将创建这样的方法:
hotel.waiting_contract?
hotel.designing?
hotel.waiting_contract!
hotel.format_status # => "Waiting contract"
希望有帮助!
UPDATE
类似的功能可以通过重写来实现status
方法本身,尽管更建议使用单独的方法:
class Hotel < ActiveRecord::Base
enum status: { waiting_contract: 1, designing: 2 }
def status
super.to_s.humanize
end
end
此外,装饰者 https://github.com/drapergem/draper是您应该研究特定于视图的方法的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)