Rails 4のJSONには、オブジェクトのすべてのフィールドが含まれているわけではありません

mxgoncharov

私はコントローラーでアクションを起こしました

def index
    if UserDatum.find_by_user_id(current_user.id) == nil
      redirect_to new_user_datum_path
    end

    @journal = Journal.new

    authorize! :read, @journals

    if params[:date]
      @journals = Journal.all.where("user_id = #{current_user.id} and DATE(created_at) = DATE('#{params[:date]}')").order("created_at DESC")
      @date = params[:date]
      return
    end

    @journals = Journal.all.where("user_id = #{current_user.id} and DATE(created_at) = DATE('#{Time.now}')").order("created_at DESC")

  end

そして、param "date"で呼び出すと、JSONを返す必要があります(私はAJAXを使用します)。しかし、これが私のJSONです。

Object {id: 5, user_id: 31, systolic: 185, diastolic: 75, url: "http://localhost:3000/journals/5.json"} application.js?body=1:72
Object {id: 4, user_id: 31, systolic: 110, diastolic: 70, url: "http://localhost:3000/journals/4.json"} application.js?body=1:72
Object {id: 3, user_id: 31, systolic: 125, diastolic: 85, url: "http://localhost:3000/journals/3.json"} application.js?body=1:72
Object {id: 2, user_id: 31, systolic: 130, diastolic: 90, url: "http://localhost:3000/journals/2.json"} application.js?body=1:72

'created_at'および 'type_of_pressure'のようなフィールドが含まれている必要があります。しかし、私がそれらを呼び出そうとすると、jsは「undefinied」を返します。

アルマロン

言及するカップルの事柄。

  1. リクエストパラメータに応じて出力タイプを決定することは、まったく信頼できません。Railsは、request.formatアプリ内のすべてのルートに対してそれを行うため提供します。したがって、respond_toブロックを使用して出力を定義する必要があります。このような。

    respond_to do |format|
      format.html { @journals = Journal.all.where("user_id = #{current_user.id} and DATE(created_at) = DATE('#{Time.now}')").order("created_at DESC") } 
      format.json { 
        @date = params[:date] || Time.now #set the default value just in case nothing was sent
        @journals = Journal.all.where("user_id = #{current_user.id} and DATE(created_at) = DATE('#{@date}')").order("created_at DESC")
      }
    

    このJSONは/journals.json、AJAX呼び出しで正しく設定するから提供されることを忘れないでください。

  2. JSON出力を正しくフォーマットするには、index.jsonビューを適切に設定する必要があります当然のことながら、yuは、を呼び出すことにより、コントローラーアクションから直接これらのジャーナルをレンダリングできますrender json: @journalsが、ビューははるかに柔軟です。JSONビューをカスタマイズするには、jbuilder(Railsにすでに付属している)のようなシリアル化ツールを使用することを好みますしたがってindex.json.jbuilderapp/views/journalsディレクトリでビューを開き、次のようなものを配置します

    json.array! @journals do |journal|
      json.(journal, :id, :user_id, :systolic, :diastolic, :url, :type_of_pressure, :anything_else_you want)
    end  
    

    その他のオプションと機能については、jbuilderのドキュメント確認してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Railsでオブジェクトをフィルタリングして、オブジェクトを作成したユーザーまたは管理者だけがそのオブジェクトを破棄できるようにするにはどうすればよいですか?

分類Dev

rails-単一のファイルが機能する必要がありますが、ディレクトリのすべてが必要ではありません

分類Dev

Rails 4アクティブレコード。シリアル化された配列属性が別の配列に含まれているかどうかを確認して、オブジェクトを検索します

分類Dev

Rails 4to_jsonにはすべての関連付けが含まれます

分類Dev

Rails 5で、シードファイルで定義されたオブジェクトにすべての属性をRailsに保存させるにはどうすればよいですか?

分類Dev

Rails'nil 'はActiveModel互換のオブジェクトではありません。:to_partial_pathを実装する必要があります。ajax

分類Dev

印刷オブジェクトにすべてのキーが含まれているわけではありません

分類Dev

Railsヘルパーはすべてのコンテンツをレンダリングするわけではありません

分類Dev

JSONオブジェクトの配列であるrailsフィールド?

分類Dev

Rails:フォーム内のすべてのフィールドがrails dbに保存されておらず、代わりにnilを示すいくつかのフィールドがあります

分類Dev

誰かがこのコードで私を助けることができますか?Rails 4に変換する必要がありますが、方法がわかりません。(routes.rbファイルをrails2からrails4に)

分類Dev

Rails-親IDが子の関連付けのいずれにも含まれていないオブジェクトを取得します

分類Dev

オブジェクトはこのプロパティまたはメソッドをサポートしていませんRails Windows 64bit

分類Dev

Rails:TypeError:オブジェクトはこのプロパティまたはメソッドをサポートしていません

分類Dev

Rspec / Rails4、オブジェクト属性の更新がコントローラーの仕様に保持されていませんか?

分類Dev

Rails:Railsアプリのルートにある.envファイルが読み込まれていません

分類Dev

Rails 5、IDのないユーザーが見つかりませんでした。フォームを介してオブジェクトを渡すことはできますか?

分類Dev

Railsでは、オブジェクトの配列に特定の値に一致する特定の属性が含まれているかどうかをどのように判断しますか?

分類Dev

Railsの移行により、デフォルトのnullではないプロパティが既存のブールフィールドに追加されます

分類Dev

Railsはオブジェクトのすべての属性を検証します

分類Dev

Ruby on Rails:DBに新しいオブジェクトを作成するためのフォームが含まれていると、なぜ空の値が表示されるのですか?

分類Dev

ActiveAdminの.csvへのエクスポートにオブジェクト属性がありません(Rails 3.2)

分類Dev

Rails5.2のアクティブストレージでメソッドエラーはありません

分類Dev

ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

分類Dev

Railsにはlibのクラスのモジュールがどこに含まれていますか?

分類Dev

Railsメソッドがありません-「else」ケースのバックトレースを取得するにはどうすればよいですか?

分類Dev

オブジェクトを保存すると、SidekiqワーカーでActiveRecord :: RecordNotFoundが発生します。Railsのコールバックは使用しません

分類Dev

Bundlerはgem "rails"と互換性のあるバージョンを見つけることができませんでしたが、バージョンはインストールされています

分類Dev

Rails 4.2-アップグレード後、サーバーのアクティビティにもかかわらず、ページがブラウザーに読み込まれることはありません(または非常に時間がかかります)

Related 関連記事

  1. 1

    Railsでオブジェクトをフィルタリングして、オブジェクトを作成したユーザーまたは管理者だけがそのオブジェクトを破棄できるようにするにはどうすればよいですか?

  2. 2

    rails-単一のファイルが機能する必要がありますが、ディレクトリのすべてが必要ではありません

  3. 3

    Rails 4アクティブレコード。シリアル化された配列属性が別の配列に含まれているかどうかを確認して、オブジェクトを検索します

  4. 4

    Rails 4to_jsonにはすべての関連付けが含まれます

  5. 5

    Rails 5で、シードファイルで定義されたオブジェクトにすべての属性をRailsに保存させるにはどうすればよいですか?

  6. 6

    Rails'nil 'はActiveModel互換のオブジェクトではありません。:to_partial_pathを実装する必要があります。ajax

  7. 7

    印刷オブジェクトにすべてのキーが含まれているわけではありません

  8. 8

    Railsヘルパーはすべてのコンテンツをレンダリングするわけではありません

  9. 9

    JSONオブジェクトの配列であるrailsフィールド?

  10. 10

    Rails:フォーム内のすべてのフィールドがrails dbに保存されておらず、代わりにnilを示すいくつかのフィールドがあります

  11. 11

    誰かがこのコードで私を助けることができますか?Rails 4に変換する必要がありますが、方法がわかりません。(routes.rbファイルをrails2からrails4に)

  12. 12

    Rails-親IDが子の関連付けのいずれにも含まれていないオブジェクトを取得します

  13. 13

    オブジェクトはこのプロパティまたはメソッドをサポートしていませんRails Windows 64bit

  14. 14

    Rails:TypeError:オブジェクトはこのプロパティまたはメソッドをサポートしていません

  15. 15

    Rspec / Rails4、オブジェクト属性の更新がコントローラーの仕様に保持されていませんか?

  16. 16

    Rails:Railsアプリのルートにある.envファイルが読み込まれていません

  17. 17

    Rails 5、IDのないユーザーが見つかりませんでした。フォームを介してオブジェクトを渡すことはできますか?

  18. 18

    Railsでは、オブジェクトの配列に特定の値に一致する特定の属性が含まれているかどうかをどのように判断しますか?

  19. 19

    Railsの移行により、デフォルトのnullではないプロパティが既存のブールフィールドに追加されます

  20. 20

    Railsはオブジェクトのすべての属性を検証します

  21. 21

    Ruby on Rails:DBに新しいオブジェクトを作成するためのフォームが含まれていると、なぜ空の値が表示されるのですか?

  22. 22

    ActiveAdminの.csvへのエクスポートにオブジェクト属性がありません(Rails 3.2)

  23. 23

    Rails5.2のアクティブストレージでメソッドエラーはありません

  24. 24

    ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

  25. 25

    Railsにはlibのクラスのモジュールがどこに含まれていますか?

  26. 26

    Railsメソッドがありません-「else」ケースのバックトレースを取得するにはどうすればよいですか?

  27. 27

    オブジェクトを保存すると、SidekiqワーカーでActiveRecord :: RecordNotFoundが発生します。Railsのコールバックは使用しません

  28. 28

    Bundlerはgem "rails"と互換性のあるバージョンを見つけることができませんでしたが、バージョンはインストールされています

  29. 29

    Rails 4.2-アップグレード後、サーバーのアクティビティにもかかわらず、ページがブラウザーに読み込まれることはありません(または非常に時間がかかります)

ホットタグ

アーカイブ