Ruby on rails Rails在视图中显示属性的自定义标签

Ruby on rails Rails在视图中显示属性的自定义标签,ruby-on-rails,Ruby On Rails,我相信这已经被问过了,这很容易,但我真的不知道该搜索什么来找到解决方案 如果我在列表中有值,如1,-1,2,其中-1=sale,1=purchase等,我如何显示purchase而不是1或sale而不是-1 数据库表stockmovements列名reason您可以这样做: <% if stockmovement == 1 %> purchase <% elsif stockmovement == -1 %> sale <% end %> def rea

我相信这已经被问过了,这很容易,但我真的不知道该搜索什么来找到解决方案

如果我在列表中有值,如
1,-1,2
,其中
-1=sale
1=purchase
等,我如何显示purchase而不是1或sale而不是-1

数据库表
stockmovements
列名
reason

您可以这样做:

<% if stockmovement == 1 %>
 purchase
<% elsif stockmovement == -1 %>
 sale
<% end %>
def readable_reason
    case reason
    when -1
        "sale"
    when 1
        "purchase"
    end
end

购买
销售
您可以这样做:

<% if stockmovement == 1 %>
 purchase
<% elsif stockmovement == -1 %>
 sale
<% end %>
def readable_reason
    case reason
    when -1
        "sale"
    when 1
        "purchase"
    end
end

购买
销售

在表格的文档中,您应该放置:

<td>
  <% case stockmovement %>
  <% when 1 %>
    "purchase"
  <% when 2 %>
    "sale"
  <% end %>
</td>

“购买”
“出售”

在表格的文档中,您应该放置:

<td>
  <% case stockmovement %>
  <% when 1 %>
    "purchase"
  <% when 2 %>
    "sale"
  <% end %>
</td>

“购买”
“出售”

每当我遇到这种情况时,我都会在模型中创建一个可读的方法

在模型类中添加如下方法:

<% if stockmovement == 1 %>
 purchase
<% elsif stockmovement == -1 %>
 sale
<% end %>
def readable_reason
    case reason
    when -1
        "sale"
    when 1
        "purchase"
    end
end
那么在你看来,

<td>stockmovement.readable_reason</td>
stockmovement.readable\u原因

它使我的视图文件更具可读性。此外,我不必在每个视图中复制
case when
,我想在其中显示
原因

每当我遇到这种情况时,我都会在模型中创建一个可读的方法

在模型类中添加如下方法:

<% if stockmovement == 1 %>
 purchase
<% elsif stockmovement == -1 %>
 sale
<% end %>
def readable_reason
    case reason
    when -1
        "sale"
    when 1
        "purchase"
    end
end
那么在你看来,

<td>stockmovement.readable_reason</td>
stockmovement.readable\u原因

它使我的视图文件更具可读性。此外,我不必在每个视图中复制
case,我想在其中显示
原因

好的,实际上是stockmovement.reason,然后它就工作了。。谢谢!好的,这实际上是股票运动。原因是,然后它就起作用了。。谢谢!与其他答案相同的答案需要是stockmovement。原因与其他答案相同的答案需要是stockmovement。原因是,这是避免重复和保持清晰的最佳方法。我要用这个。谢谢实际上我刚才试过了,结果它返回了一个错误。首先,我必须使用self.reason使其工作,但随后它将返回所有行的最后一个值。在上面的示例中,它返回所有购买rows@catmal你确定?这类似于RubyFIDLE。Case when works perfectlySorry我在你的代码中添加了一些条件,但我错把
放在了
末尾。一切都很好,现在开始工作了,再次感谢!是的,这是避免重复和保持清晰的最好方法。我要用这个。谢谢实际上我刚才试过了,结果它返回了一个错误。首先,我必须使用self.reason使其工作,但随后它将返回所有行的最后一个值。在上面的示例中,它返回所有购买rows@catmal你确定?这类似于RubyFIDLE。Case when works perfectlySorry我在你的代码中添加了一些条件,但我错把
放在了
末尾。一切都很好,现在开始工作了,再次感谢!