0

現在、コントローラーにこれがあります:

@softwares = Software.find_by_sql
(
"SELECT s.id, s.vendor, s.title, s.edition, SUM(l.amount) AS amount FROM softwares s
 LEFT JOIN licenses l ON s.id=l.software_id GROUP BY s.vendor, s.title, s.edition"
)

どちらが想定されていることを行いますが、数値は7または6ではなく7.0または6.0として表示されます..小数を削除するにはどうすればよいですか? 私の見解では、私は文字通りただ持っています<%= l.amount %>

4

2 に答える 2

2

私はむしろプレゼンテーションを表示するように制御したいと思います。それ以外の

<%= l.amount %>

置く:

<%= number_to_currency l.amount, :precision => 0 %>

このヘルパー メソッドについては、こちらで説明しています

余談ですが、そのSQLをモデルに入れる方が良い設計かもしれません。コントローラは、次のようなことを行います@softwares = Software.all_with_licenses_amounts

于 2012-08-21T12:54:29.470 に答える
0

l.mount は小数であるため、小数として表示されます

試す

 "SELECT s.id, s.vendor, s.title, s.edition, CAST(SUM(l.amount) as UNSIGNED) AS amount 
  FROM softwares s 
  LEFT JOIN licenses l ON s.id=l.software_id GROUP BY s.vendor, s.title, s.edition"
于 2012-08-21T12:30:59.603 に答える