Ruby/Rails - 是否可以在视图中执行ruby计算?

Chr*_*len 1 ruby ruby-on-rails view

我正在尝试执行一个计算,它看起来像我到目前为止一直在视图中.

在我看来

<% for post in @user.posts %>
    <%= post.tasks.count / @projects.tasks.count  %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我正在尝试显示一个百分比....当我自己放置<%= post.tasks.count%>时它显示2和<%= @ projects.tasks.count%>它显示4.

但是当我尝试<%= post.tasks.count/@ projects.tasks.count%>时,它显示0不是.50或1/2.

我在视图而不是控制器中执行此逻辑的原因是我想显示for循环的每次迭代的动态百分比

Emi*_*ily 6

你得到零的原因是两个数字都是整数,所以它正在进行整数除法.如果你将第一个转换为浮点数,那么你将得到一个浮点数作为结果.

如果要将数字格式化为百分比,您还需要使用number_to_percentage帮助程序.所以你的视图代码看起来像这样:

<%= number_to_percentage( post.tasks.count.to_f / @projects.tasks.count ) %>
Run Code Online (Sandbox Code Playgroud)

并会50%在您的视图中生成输出.如果需要进一步自定义,也可以为该帮助程序指定精度和一些格式选项.