0

変数の JSON バージョンにアクセスしようとしています。使ってみました。show 変数の表記は、json オブジェクトとしてフォーマットされていると推測しました。@shows.title しかし、それはエラーを引き起こしました。@shows.to_json.title を使用して動作させようとしましたが、それでもうまくいきません。format.json がすでに to_json を呼び出しているとき、それは format を使用するという考えであるか、このように考えるのは間違っていると思いました。もしそうなら、フォーマットは何をしますか?

   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 ページを呼び出すようにすることです。そのページには、データベースからのすべてのデータを含む JSON オブジェクトを要求する jquery プラグインがあります。このようにして、JSON を解析し、jquery プラグインを使用して index.html ページ上のすべてのオブジェクトをレンダリングできます。この理由は、jquery.masonry.js & jquery.infinitescroll.js というプラグインを使用しているためです。これは、複数の JSON 構造を使用してページを作成するように設定されています。

4

1 に答える 1

0

コレクションにjqueryからアクセスできるようにする必要がある場合は、スクリプトブロック内でjson文字列としてコレクションをレンダリングできます。たとえば、index.html.erbに次のように配置できます。

<%= javascript_tag "var shows = #{@shows.to_json}" %>

レンダリングされます

<script type="type/javascript"> var shows = { "your":"json", "object":"YAY" } </script>

しかし、あなたはまだ応答したい

于 2012-12-07T17:59:34.867 に答える