2016-11-07 5 views
0

これは既に尋ねられていると確信していますが、それはかなり簡単ですが、解決策を見つけるために何を検索するのか本当にわかりません。私は1,-1,2どこ-1 = sale1 = purchaseなどのような列テーブルの値を持っている場合はRailsはビューの属性のカスタムラベルを表示します

は、どのように私は購入の代わりに、1または販売を代わりに表示するか-1?

データベーステーブルstockmovementsカラム名reason

答えて

1

は私がモデルでreadable_methodを作成します。あなたのビューで次に

def readable_reason 
    case reason 
    when -1 
     "sale" 
    when 1 
     "purchase" 
    end 
end 

<td>stockmovement.readable_reason</td> 

それは読みやすく、私のビューファイルを保持します:モデルクラスで

次のようにメソッドを追加します。また、私はreasonを表示するすべてのビューでcase-whenをコピーする必要はありません。

+0

はいこれは繰り返しを避け、明確にするための最良の方法です。私はこれを使うつもりです。ありがとう! – Catmal

+0

実際には今試しましたが、エラーを返します。まず、self.reasonを使用して動作させる必要がありますが、すべての行の最後の値が返されます。上の例では、すべての行の購入を返します – Catmal

+0

@catmalあなたは本当ですか?これはrubyfiddle http://rubyfiddle.com/riddles/8d0aeと似ています。場合が完全に動作する場合 – dnsh

1

あなたは次のように行うことができます:あなたのテーブルのドキュメント内

<% if stockmovement == 1 %> 
purchase 
<% elsif stockmovement == -1 %> 
sale 
<% end %> 
+0

他の回答と同じですが在庫移動が必要です。理由 – Catmal

1

あなたが置く必要があります:私は、このような状況に直面するたびに

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

これは実際にstockmovement.reasonですし、それが動作します..ありがとう! – Catmal

関連する問題