自定义布尔文本?

Lea*_*RoR 3 ruby ruby-on-rails ruby-on-rails-3

如果在我的BusinessStore模型/表中,我有布尔值:

create_table :business_stores do |t|
    t.boolean :online_store
end
Run Code Online (Sandbox Code Playgroud)

在我看来,我希望它以字符串形式说"在线"而不是真或假:

<% @business_stores.each do |business_store| %>
    <%= business_store.online_store %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

怎么做?

nat*_*lds 5

我遵循规则来保持逻辑不在视图中,因此我将在BusinessStore模型中创建一个方法:

def BusinessStore < ActiveRecord::Base
    def status
       if online_store
         "Online"
       else
         "Some other type or blank"
       end
    end
end
Run Code Online (Sandbox Code Playgroud)

然后在视图中

<%= business_store.status %>
Run Code Online (Sandbox Code Playgroud)