我正在使用best_in_place gem,并且长话短说我不能在我的视图中调用这个特定的帮助器,因为我必须在我的模型中调用自定义方法来自定义我希望输出看起来的方式。 / p>
这是我认为的电话:
<td><%= best_in_place firm, :size, :type => :input, :nil => "Click to add Firm Size", :display_as => :in_millions %></td>
这是我的Firm
模型中的方法:
def in_millions
"$#{self.size}M"
end
用户输入的数字不是100000000
,而是100
。所以我想接受100
,然后阅读$100M
。这就是我的助手所做的。
但是,对于那些类似12345
的数字,我希望输出看起来像这样:$12,345M
。
我能想到的最简单方法就是添加number_with_delimiter(self.size)
并保留$
和M
,但我无法从我的模型中访问该辅助方法。
思想?
答案 0 :(得分:3)
您可以通过添加ActionView::Helpers
:
# in model
include ActionView::Helpers
我想知道,如果将演示文稿保留在演示文稿方面是不合理的。您可以将替代逻辑包装在备用帮助程序中:
# in helper
def firm_size_in_millions(firm)
size = number_with_delimiter(firm.size)
"$#{size}M"
end
<!-- in view -->
<%= firm_size_in_millions(@firm) %>
答案 1 :(得分:1)
帮助者被视为“呈现”工具 - 货币值或小数值,例如,在某些区域或国家/地区可能会以不同于其他区域或国家/地区的方式表示。
但如果您知道所有这些,那么您的模型中只有include ActionView::Helpers::NumberHelper
: - )