【问题标题】:How could I access view helpers in Model我如何访问模型中的视图助手
【发布时间】:2012-12-24 10:30:26
【问题描述】:

鉴于我已在 config/routes.rb 中定义了这一点

resource :products

如果我想访问product_path(self) 等路由助手来在模型中生成url。我怎样才能将这些模块混入?

【问题讨论】:

  • 如果您在访问 Rails 中的某些内容时遇到问题,那么您可能做错了。为什么模型应该知道应用程序中的资源路径?最终目标是什么?
  • stackover流程中有2个这样的问题,所以看看stackoverflow.com/questions/7465083/…stackoverflow.com/questions/2706433/…
  • 我有一个交易模型,我用它来与支付网关(如 paypal)通信。由于 paypal 有自己的请求 url 格式,我想将它封装在模型中,而不是分散在控制器中。因此我可以在我的控制器中调用transaction.go_paypal。由于路由助手需要生成一些return_url,所以我需要在我的模型中访问它。我知道这个问题,但我想不出另一种方法来归档它。

标签: ruby-on-rails ruby helpers


【解决方案1】:
class MyClass < ActiveRecord::Base
  include Rails.application.routes.url_helpers
end

或(不包含)

Rails.application.routes.url_helpers.product_path(self)

【讨论】:

  • @steven.yang,您从未在我的评论中回答过这个问题,但我想如果您不想被帮助,我无法帮助您。当然这可行,但我高度怀疑你是否真的需要这个。代码味道很臭。
  • steven.yang 如果这正是您所需要的,为什么不接受答案?其次:@maček 所说的完全正确。虽然这是可行的,但它是可怕的并且不利于 MVC。为什么在模型中需要这个?如果你需要一个可以访问路由的函数,为什么不创建一个辅助方法呢?
猜你喜欢
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多