2013-11-11 3 views
0

Ruby on Rails Вопрос: Внутри контроллера у вас есть семь действий REST. Почти все они реагируют на формат xml/html или json. Я без понятия что это значит. Не могли бы вы объяснить, что это цель. Например:Rails Controller - Какова цель «откликаться на формат» html и json?

def index 
    @tweets = Tweet.all 

    respond_to do |format| 
    format.html 
    format.json { render json: @tweets } 
    end 
end 

Какова цель «реагировать на» часть, которая содержит HTML и JSON? Что делают эти форматы? Кроме того, в чем разница между xml и html? Иногда я вижу xml и другие html-файлы.

Спасибо

+1

Дубликат? http://stackoverflow.com/questions/9492362/rails-how-does-the-respond-to-block-work – Nobita

+0

Таким образом, вы можете отвечать на запросы с помощью HTML, например, человека, делающего запрос из браузера, или с помощью JSON, например, клиентская структура, получающая данные JSON. XML - это XML, HTML - HTML. –

+0

Tweet.all собирается отобразить все твиты в таблице, чтобы клиент мог их видеть. Поэтому я смущен относительно добавления значения «format html и json». Для меня задача была завершена, когда пользователь видит всю таблицу, что делает формат html и json дополнительно? – user2449984

ответ

1

Это просто способ сообщая контроллеру, как реагировать на различные типы запросов. Например клиент может хотеть HTML или информацию XML от вас:

def index 
@people = Person.find(:all) 

    respond_to do |format| 
    format.html 
    format.xml { render :xml => @people.to_xml } 
    end 
end 

Что это говорит, «если клиент хочет HTML в ответ на это действие, просто ответить, как мы бы раньше, но если клиент хочет XML, вернет им список людей в формате XML ». (Рельсы определяет желаемый формат ответа от HTTP заголовок Accept, представленный клиентом.)

http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to

Смежные вопросы