从我的阅读来看,Helper 似乎是为了提供意见。问题是我想将一些难看的硬编码 JSON 从控制器传递回我的视图,直到我的 REST 服务准备好。所以我当然可以在控制器中对其进行硬编码,但我想知道是否有一种更清洁的方法可以不使用硬编码的东西污染控制器,并以某种方式将其写入帮助程序并在控制器中调用该帮助程序方法。
那么你对此有何建议?
从我的阅读来看,Helper 似乎是为了提供意见。问题是我想将一些难看的硬编码 JSON 从控制器传递回我的视图,直到我的 REST 服务准备好。所以我当然可以在控制器中对其进行硬编码,但我想知道是否有一种更清洁的方法可以不使用硬编码的东西污染控制器,并以某种方式将其写入帮助程序并在控制器中调用该帮助程序方法。
那么你对此有何建议?
如果是数据,您可以为其创建一个虚拟模型:
# app/models/ugly_fugly.rb
class UglyFugly
def self.fetch
{ foo: 'bar' }
end
# or if you want it as a string, you could do:
{ foo: 'bar' }.to_json
end
然后在你的控制器中抓取它:
def index
@uglies = UglyFugly.fetch
end
最好的部分是它很容易重构,很容易快速组合在一起,并且实际上仍然遵循 Rails 风格的 MVC。
您可以在一个新文件中创建您的辅助方法,然后将其包含在您的控制器中,如下所示:
your_helper.rb
module YourHelper
def json_code
#logic
end
end
your_controller.rb
class YouController < ApplicationController
include YourHelper
end