我正在尝试访问变量的JSON版本。我试过用。显示变量的符号,因为我认为它现在被格式化为json对象。 @ shows.title但导致错误。 我尝试使用@ shows.to_json.title来工作,但仍然没有好处。我想当你format.json它已经调用了to_json,这就是使用格式的想法,或者这样思考是不正确的。如果是那么格式做什么呢。
class ShowsController < ApplicationController
# GET /shows
# GET /shows.json
def index
@shows = Show.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @shows }
end
end
index.html.erb
<p> @shows.title <p>
我在JSON中寻找的结构就像这样。
[
{
"id": "feature",
"width":570,
"title": "Lorem ipsum dolor amet emipsum do omnis iste natus",
"description": "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantiu mdoloremque laudantium.",
"img": "img/work/img1.jpg",
"url": "http://www.bla.com"
},
{
"id": "show",
"width":200,
"title": "Lorem ipsum dolo",
"description": "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantiu mdoloremque laudantium.",
"img": "img/work/img2.jpg",
"url": "http://www.bla.com"
}
更新:也许我没有正确解释这一点。
我的目标是让我在控制器中的操作调用index.html页面,它现在就是这样做的。在该页面上是一个jquery插件,它使用数据库中的所有数据请求JSON对象。这样它就可以解析JSON并使用jquery插件呈现index.html页面上的所有对象。原因是它使用了一个名为jquery.masonry.js&amp;的插件。 jquery.infinitescroll.js现在设置为使用多个JSON结构来创建我的页面。
答案 0 :(得分:0)
如果您需要jquery可以访问您的集合,那么您可以将其呈现为脚本块内的json字符串。例如,在index.html.erb中,您可以输入:
<%= javascript_tag "var shows = #{@shows.to_json}" %>
将呈现
<script type="type/javascript"> var shows = { "your":"json", "object":"YAY" } </script>
但你仍然想要回复html