在Ruby on Rails中使用javascript资源中的助手是可能的吗?我正在尝试用可用的帮助器humanized_money
转换Money对象Object { fractional: "21050.0", currency: Object, bank: Object }
。在正常视图中,它工作正常,但在js.coffee文件中,它在<%= humanized_money_with_symbol my_money_object %>
控制台中显示此错误。
ReferenceError:未定义humanized_money
我的.js.coffee文件
$('.select2-hidden-accessible').change ->
item_id = $(this).find(":selected").val()
unit_price_input = $(this).parent().find('.unit_price')
unit_price = 0;
$.ajax "/items/#{item_id}.json",
type: 'GET'
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) ->
console.log(textStatus)
success: (data, textStatus, jqXHR) ->
console.log(data['unit_price'])
unit_price = data['unit_price']
unit_price_input.val(humanized_money unit_price)
解决方案
我已经用humanized_money将show.json.jbuilder更改为response,而不是在视图中执行此操作。
json.extract! @item, :id, :unit, :created_at, :updated_at
json.unit_price humanized_money @item.unit_price
发布于 2018-08-02 07:18:56
解决这个问题的最简单方法是创建一个initializer
文件,然后覆盖to_json
方法
class Money
def as_json(options)
self.to_f
end
end
默认情况下,money列显示的数据比视图中实际需要的数据多。
https://stackoverflow.com/questions/37886045
复制相似问题