ошибка: "Внутренняя ошибка сервера: неопределенный метод `send_data'

Я попытался вызвать send_data в ApplicationController, затем возникает ошибка.

 error: "Internal server error: undefined method `send_data' 

Версии окружения здесь. : рубин 2.1.2p95 / angularjs 1.2

Многие люди предполагают, что вы можете вызывать send_data только в ApplicationController, и говорят о том, как предоставить метод Application Controller внешним классам, подобным этому. Как вызывать методы ApplicationController из ApplicationHelper

Но я вызываю send_data в ApplicationController.

# Application controller
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
# protect_from_forgery with: :null_session

  include ApplicationHelper

    def self.send_csv(csv, options = {})
      Rails.logger.debug("send_csv")
      bom = "   "
      bom.setbyte(0, 0xEF)
      bom.setbyte(1, 0xBB)
      bom.setbyte(2, 0xBF)
      Rails.logger.debug("send_data start")
      send_data bom + csv.to_s, options
    end
end    

Как я могу решить такого рода проблемы.

пожалуйста...


Обновление: моя система включает Grape. Таким образом, send_csv будет вызываться из экземпляра Grape.

[Позвонить с]

module ConfAPI
  module V1
    class AAABBBCCC < Grape::API  

    get '/output/:id' do
      test_data = {
        :column1 => "abc",
        :column2 => "def",
        :column3 => "ghi"
      }
      CSV.generate do |csv|
        #csv << test_data
        test_data.each do |key, value|
          csv << [value]
        end

        ApplicationController.send_csv(csv)
      end
      Rails.logger.debug("Output end")       

[позвонить]

class ApplicationController < ActionController::Base

  include ApplicationHelper


#    def self.send_csv(csv, options = {})
    def send_csv(csv, options = {})
      Rails.logger.debug("not self send_csv")
      bom = "   "
      bom.setbyte(0, 0xEF)
      bom.setbyte(1, 0xBB)
      bom.setbyte(2, 0xBF)
      Rails.logger.debug("send_data start")
      send_data bom + csv.to_s, options
    end 

Этот метод делает новую ошибку.

error: "Internal server error: undefined method `send_csv' for ApplicationController:Class"

Как я могу вызвать метод экземпляра в Application Controller из экземпляра Grape?

Я ценю вашу помощь.


person TR14    schedule 10.11.2014    source источник
comment
Извините, я понятия не имею, как работает Grape, поэтому я не знаю, как заставить это работать с send_data.   -  person mu is too short    schedule 10.11.2014
comment
Спасибо! С вашей помощью придумываю еще один метод!   -  person TR14    schedule 10.11.2014
comment
Вы можете сами ответить на свой вопрос, если нашли решение.   -  person mu is too short    schedule 10.11.2014