我的rails应用从JSON获取以下mixcloud Feed,并将结果粘贴到我的索引页
在我执行此操作的那一刻,我的Feed的所有内容都显示为未格式化的一大块可怕的文字(没有卷曲的JSON括号)
我只想在视图中显示Feed中的特定值。
从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
我无法弄清楚如何设置结果样式并仅显示Feed中的某些项目。我的做法错了吗?
答案 0 :(得分:2)
不是直接将json写入您的视图,也许您可以编写一个将json转换为html标记的clientide javascript函数。例如,也许使用像这里描述的jquery? Best way to display data via JSON using jQuery
或者,类似地,您仍然可以直接在视图中编写json,但将其作为javascript变量的值写出来,而不是将其写为html。然后你可以编写一个javascript函数,在页面加载后读取和解析javascript变量,将其转换为html,然后插入到DOM中。此方法类似于上面链接中的答案,除了您不必发出ajax请求,您可以简单地处理数据,因为它已经在js var中本地可用。
答案 1 :(得分:2)
此示例循环显示前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 %>
希望这会有所帮助: - )