0

我怎样才能制作这个MVC?

  class Product < ActiveRecord::Base
    validates :price, :presence => true

    def to_s
      "#{name} at #{number_to_currency(price)}"
    end

  end

我需要将价格格式化为货币,但我不能使用 number_to_currency,因为这是在模型中。我可以将视图传递给这个,但感觉不是很干净。

4

2 回答 2

2

一个解决方案可能是定义一个ProductHelper模块app/helpers来实现你想要的方法,比如product_name_with_price

module ProductHelper
  def product_name_with_price(product)
    "#{product.name} at #{number_to_currency(product.price)}"
  end
end

然后在视图中

<%= product_name_with_price(@product) %>
于 2013-05-08T14:29:25.697 回答
1

这违反了 MVC,但如果您愿意,您可以number_to_currency在模型中使用。你只需要包括ActionView::Helpers::NumberHelper.

  class Product < ActiveRecord::Base
    include ActionView::Helpers::NumberHelper
    validates :price, :presence => true

    def to_s
      "#{name} at #{number_to_currency(price)}"
    end

  end
于 2013-05-08T14:26:42.813 回答