【问题标题】:How do I call a method inside ApplicationHelper from my Model?如何从我的模型中调用 ApplicationHelper 中的方法?
【发布时间】:2013-06-18 17:32:35
【问题描述】:
# application_helper.rb

def do_some_stuff
   ...
end


# my_model.rb

def my_model_method
   # I want to call the method "do_some_stuff" here, how exactly?
end

显然,我不能只调用do_some_stuff,因为它会告诉我模型没有这个方法。

【问题讨论】:

  • 你需要这样做吗?
  • 不,你不能。在模型中编写方法并在对象上调用它

标签: ruby-on-rails model helpermethods


【解决方案1】:

您可以通过在模型文件中添加以下行来完成此操作:

include ActionView::Helpers

现在,您可能需要重新考虑将辅助方法放置在其他位置(例如模型或 mixin 模块),但请使用上面的代码行来完成您的要求。

【讨论】:

  • 你不应该对这个问题给出这样的答案。当然,在 Ruby/Rails 中这是可能的(正如大多数人可以想象的那样),但这是一件非常非常非常糟糕的事情。
  • @Michał Szyndel - 你的意思是 Joe Half Face 的评论是正确答案吗?还是您有其他建议?
  • @TomDogg 你当然可以这样做。但这是一件非常糟糕的事情。如果您的模型中需要一段代码 - 它应该在模型中。然后你可以在控制器和视图中调用(在实例或类上)
猜你喜欢
  • 1970-01-01
  • 2015-11-25
  • 2014-04-25
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 2014-08-27
相关资源
最近更新 更多