在插值字符串上使用辅助方法

时间:2014-06-26 08:31:54

标签: ruby-on-rails ruby string-interpolation helpermethods

我希望看到我如何设置我的:通知我要使用帮助器方法,此时我已经有了这个并且得到了未定义的方法to_dollars'

notice: "Thank you for your payment of #{to_dollars(amount)}"

控制器

def create
  @donation = @campaign.donations.create(donation_params)
    if @donation.save_with_payment
      amount = @donation.donation_amount
      redirect_to @campaign, notice: "Thank you for your payment of #{to_dollars(amount)}"
    else
     flash[:notice] = @donation.errors
     render :new
  end
end

我的助手方法很简单(除非有人有更好的方法)

def to_dollars(amount)
  convert = amount / 100
  number_to_currency(convert, unit: "$", separator: ".", delimiter: "")
end

所有donation_amounts都以美分保存,所以只想将它们转换为美元..

任何帮助表示赞赏

由于

1 个答案:

答案 0 :(得分:1)

在控制器中使用辅助方法不是一个好习惯,因为帮助程序是UI帮助功能的基础。如果您想在控制器中使用这个to_dallers辅助方法,那么您可以在控制器中简单地包含辅助模块。

请检查this answer

如果必须在控制器中使用此to_dollers方法,则可以使用以下任一方法。

  • 您可以在ActiveRecord consern或单独的模块中编写此方法,并将其包含在模型中,以便您可以在对象本身上调用to_dollers方法。
  • 您可以将其包含在AmountUtility模块之类的单独模块中,并在此模块中包含此类方法。然后,此模块可以根据需要包含在任何位置。

希望这有帮助。