Как вы отображаете хеши как JSON в Rails 3 - PullRequest
4 голосов
/ 13 августа 2010

Я нашел, как визуализировать объекты ActiveRecord в Rails 3, однако я не могу понять, как визуализировать любые пользовательские объекты. Я пишу приложение без ActiveRecord. Я пытался сделать что-то вроде этого:

class AppController < ApplicationController
  respond_to :json

  ...
  def start
    app.start
    format.json { render :json => {'ok'=>true} }
  end
end

Ответы [ 5 ]

7 голосов
/ 13 августа 2010

Когда вы указываете respond_to, то в ваших действиях вы делаете совпадение respond_with:

class AppControlls < ApplicationController
  respond_to :json

  def index
    hash = { :ok => true }
    respond_with(hash)
  end
end

Похоже, вы объединяете старые блоки стиля respond_to do |format| сrespond_to, respond_with синтаксис. В этом сообщении о edgerails.info это хорошо объясняется.

1 голос
/ 28 марта 2016
class AppController < ApplicationController

respond_to :json

def index
  hash = { :ok => true }
  respond_with(hash.as_json)
end

end

Вы никогда не должны использовать to_json для создания представления, только для использования представления.

0 голосов
/ 11 октября 2013

Для тех, кто получает NoMethodError, попробуйте это:

class AppController < ApplicationController
  respond_to :json

  ...
  def start
    app.start
    render json: { :ok => true }
  end
end
0 голосов
/ 12 марта 2013

format.json { render json: { ok: true } } должно работать

0 голосов
/ 14 августа 2010

Это было очень близко.Тем не менее, он не преобразует автоматически хэш в JSON.Это был конечный результат:

class AppControlls < ApplicationController
  respond_to :json

  def start
    app.start
    respond_with( { :ok => true }.to_json )
  end
end

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...