2011-01-12 1 views
2

Моих рельсы приложение получает следующий JSON корм из mixcloud и вставляет результаты в моей индексной страницеКак мне настроить канал JSON на мой взгляд?

В момент, когда я делаю это, все содержимое моей подачи отображается неформатированным в одном большом сгустке страшно выглядящий текста (без фигурных скобок JSON)

Я только хочу отображать определенные значения из фида в представлении.

От feed in question позволяет говорить для простоты, что я просто хотел, чтобы отобразить все значения с ключом «URL»

В случае, если я делаю что-то неправильно, вот мой код:

# podcast controller 
def index 
    # I'm using a class method to get the feed 
    @feed = Podcast.feed 
end 

# podcast model 
def self.feed 
    feed = JSON.parse(open("http://api.mixcloud.com/alivefrommaryhill/feed").read) 
end 

# index.html.haml 
.feed 
    = @feed 

I не может понять, как стилизовать результаты и отобразить только определенные элементы из фида. Является ли мой подход неправильным?

ответ

2

Я сделал что-то подобное с помощью HTTParty и Hashie драгоценных камней.

Этого пример перебирает первые 10 результатов:

#controller 
def index 
    @result = Hashie::Mash.new HTTParty.get("http://api.mixcloud.com/alivefrommaryhill/feed") 
end 


#index.html 
<% @result.data[0..10].each do |e| %> 
    <%= e.url %> 
    <br/> 
<% end %> 

Если вы хотели, чтобы 'маленькие картинок' вы могли бы сделать

<% @result.data[0..10].each do |e| %> 
    <%= e.from.pictures.small %> 
    <br/> 
<% end %> 

Надеется, что это помогает :-)

+1

Вы ставите, что это помогает! спасибо большое, мне нравится это решение – stephenmurdoch

2

Вместо того чтобы писать json прямо на ваш взгляд, возможно, вы могли бы написать функцию javascript для клиентов, которая преобразует json в разметку html. Например, возможно, использовать jquery, как описано здесь? Best way to display data via JSON using jQuery

Или вы также можете написать json прямо в своем представлении, но напишите его как значение переменной javascript вместо того, чтобы писать его как html. Затем вы можете написать функцию javascript, которая читает и анализирует переменную javascript после загрузки страницы, преобразует ее в html и вставляет в DOM. Этот метод будет похож на ответ в приведенной выше ссылке, за исключением того, что вам не нужно будет делать запрос ajax, вы можете просто обрабатывать данные, поскольку он уже будет доступен локально в js var.

+0

спасибо большого , Мне нравится эта техника. попробует. Выглядит многообещающе – stephenmurdoch

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