在我的companies
数据库中,我有状态列 - boolean
(真或假)。是否可以将 true 更改为有效&从模型或控制器而不是视图模板 false 到非活动。
这是我目前在视图模板中使用的内容:
- if company.status == true
%p Active
- else
%p Inactive
我觉得这些只是不必要的条件,我正在寻找一种更清洁的方式。
答案 0 :(得分:0)
在公司模型中,定义一个这样的函数。
def get_status
return self.status ? "Active" : "Inactive"
end
在您看来,您可以这样做。
<%= company.get_status %>
答案 1 :(得分:0)
是否可以将true更改为active&amp;从false到非活动状态 模型或控制器而不是视图模板。
是的可能
您可以在模型级别编写instance method
来制作观看代码 DRY
以更抽象的方式跟随Harry Answer我们可以写!!!
def get_status
status ? "Active" : "Inactive"
end
答案 2 :(得分:0)
以前答案的补充说明:在模型中加入视图关注点不是最佳做法 - 它违反了SRP。当然,对于那个小罪,你不会被闪电击中,但是你应该意识到这一点。
另一种方法是将这个基本逻辑保留在视图中,如同使用常见的单行:
%p= company.status ? "Active" : "Inactive"
或者最后把它放在帮手中:
%p= boolean_to_activity( company.status )
# ... in helpers/some_helper.rb
def boolean_to_activity status
status ? "Active" : "Inactive"
end