编写一个帮助方法以在控制器中使用

时间:2013-08-21 17:51:57

标签: ruby-on-rails ruby-on-rails-3.2

从我的阅读材料看起来像Helpers用于观看。 问题是我想从控制器将一些丑陋的硬编码JSON传回我的视图,直到我的REST服务准备好。所以我当然可以在控制器中对它进行硬编码,但是想知道是否有一种更清洁的方法是不用那些硬编码的东西来污染控制器,并以某种方式将它写在帮助器中并在控制器中调用该辅助方法。

那你对此有什么建议?

2 个答案:

答案 0 :(得分:4)

如果是数据,您可以为它创建一个虚拟模型:

# 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。

答案 1 :(得分:1)

您可以在新文件中创建辅助方法,然后将其包含在控制器中,如下所示:

your_helper.rb

module YourHelper
  def json_code
    #logic
  end
end

your_controller.rb

class YouController < ApplicationController
  include YourHelper
end