ruby-on-rails - 来自助手的条件文本

标签 ruby-on-rails ruby

我有一组重复记录,其中应包含一个字符串,该字符串应包含一个条件文本 block :

<% if @order.payments.present? %>
  <% @order.payments.each do |p| %>
    <tr>
      <td>Payment</td>
      <td>There was a "MY CONDITIONAL TEXT" for <span><%= number_to_currency(p.try(:amount)) %></span></td>
    </tr>
  <% end %>
<% end %>

So "MY CONDITIONAL TEXT" options would be:
"Partial Payment" when p.amount < @order.value 
"Excessive Payment" when p.amount > @order.value
"Payment" when p.amount = @order.value

有没有什么方法可以在 OrdersHelper“payment_type”中创建一个辅助方法来帮助我避免在我的 View 中出现条件语句?

最佳答案

是的,为此在助手中创建一个方法

def method_name(order_value, payment_amount)
  if payment_amount < order_value
    "Partial Payment"
  elsif payment_amount > order_value
    "Excessive Payment"
  elsif payment_amount = order_value
    "Payment"
  end
end

现在在 View 中

<%= method_name(@order.value, p.amount)%>

关于ruby-on-rails - 来自助手的条件文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955913/

相关文章:

ruby-on-rails - ruby on rails webrick 服务器是否曾经用于生产?

ruby-on-rails - Rails 3 中不同公司类型的不同命名?

ruby-on-rails - 使用 Passenger 和 Rails 应用程序启动 nginx 时如何访问 Rails 应用程序的控制台(stdout)?

ruby - 使用rubinius有什么优势

ruby - 安装 ruby​​-qml - 错误 : Failed to build libqmlbind - What is missing?

ruby-on-rails - 洗劫 : Undefined Method "result"

ruby - 如何使用正则表达式解析网页中的文章?

ruby-on-rails - PG::ConnectionBad FATAL:数据库 "myapp_development"不存在

ruby-on-rails - 用户资源扩展

ruby - 在 Ruby 中,如何定义一个与类同名的类构造方法?