2

我正在使用 best_in_place gem,长话短说,我不能在我的视图中调用这个特殊的助手,因为我必须在我的模型中调用自定义方法来自定义我希望输出的外观。

这是我认为的电话:

<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)并保留$and M,但我无法从我的模型中访问该辅助方法。

想法?

4

2 回答 2

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) %>
于 2012-11-30T22:07:16.053 回答
1

助手被认为是“演示”工具——例如,货币值或十进制值在某些地区或国家/地区的表示方式可能与在其他地区或国家/地区不同。

但是,如果您知道所有这些,那么就include ActionView::Helpers::NumberHelper在您的模型中:-)

于 2012-11-30T22:06:46.040 回答