我怎样才能制作这个MVC?
class Product < ActiveRecord::Base
validates :price, :presence => true
def to_s
"#{name} at #{number_to_currency(price)}"
end
end
我需要将价格格式化为货币,但我不能使用 number_to_currency,因为这是在模型中。我可以将视图传递给这个,但感觉不是很干净。
我怎样才能制作这个MVC?
class Product < ActiveRecord::Base
validates :price, :presence => true
def to_s
"#{name} at #{number_to_currency(price)}"
end
end
我需要将价格格式化为货币,但我不能使用 number_to_currency,因为这是在模型中。我可以将视图传递给这个,但感觉不是很干净。
一个解决方案可能是定义一个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) %>
这违反了 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