0

私の問題にはおそらく簡単な解決策がありますが、集中的なグーグルは何も思いつきませんでした。

ajax呼び出しがあります:

$.get(path,{ section_id: "a", field_id: "b"})
 .done(function(data) {alert(data);})
 .fail(function() { alert("error"); });

このajax呼び出しは、指定されたコントローラーに行き、クエリを実行してActiveRecord::Relationオブジェクトを返します。ここまでは順調ですね。今、私がやりたいのは、このActiveRecord::Relationオブジェクトをjsonとしてdone関数に返すことです。どうやってやるの?すべてのヘルパーに感謝します!

4

3 に答える 3

1

アクティブなレコードクラスではなく、リレーションからオブジェクトを返したいと思います。コントローラでは、オブジェクトを次のような適切な形式でレンダリングする必要があります。

respond_to do |format|
    format.json { render json: @your_object}
end
于 2013-03-13T14:54:49.310 に答える
1

ActiveRecord::Relation オブジェクトで使用されている基準ハッシュを返したい場合は、次のようにします。

@relation.where_values_hash.to_json

于 2013-12-15T14:03:57.470 に答える
0

このようなことをする

@post = Post.where(id: params[:id])
# @post at the moment is an AR::Relation
render json: @post, status: :ok

実際には、JSON としてシリアル化されたレコードを返すだけです。次のようにして、Rails コンソールで実際にこれをテストできます。

@record = YourModel.where(some_condition: some_parameter)
@record.class #=> ActiveRecord::Relation
@json_record = @record.to_json
@json_record.class #=> String
# @json_record will be the JSON representation of whatever the Relation fetched for you.
于 2013-03-13T15:07:39.480 に答える