我如何制作这个MVC?
class Product < ActiveRecord::Base
validates :price, :presence => true
def to_s
"#{name} at #{number_to_currency(price)}"
end
end
我需要将价格格式化为货币,但我不能使用number_to_currency,因为这是在模型中。我可以将视图传递给它,但这感觉不是很干净。
答案 0 :(得分: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) %>
答案 1 :(得分: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