問題タブ [rabl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 2.3.2 から Rails 2.3.14 へのアップグレード
私は、かなり大規模なレガシー Rails 2.3.2 アプリの責任を負っています。JSON でデータを出力するかなり複雑な RESTful API をこのアプリに追加するよう依頼されました。
調査を行った結果、API 呼び出しの性質を考えると、RABL gem を使用することがおそらく最善の計画であるという結論に達しました。ただし、RABL の依存関係には ActiveSupport 2.3.14 が必要です。
ここで、ActiveSupport 2.3.2 と ActiveSupport 2.3.14 の両方を同じアプリで動作させることはできないと仮定します。私の理解が正しければ、ActiveSupport をアップグレードすると、残りの Rails パッケージを次のようにアップグレードする必要があります。依存関係の要件によります。
Rails 2.3.2 と Rails 2.3.14 の違い、または既存の機能の一部を壊す可能性があるかどうかをある程度理解できるように、その情報がどこにあるか教えてもらえますか?
あるいは、Rails の 2 つのバージョンに重大な違いがある場合、RABL に代わるものを推奨できる人はいますか? 私は Jsonify、JBuilder、Tequila など、他のかなりの数を見てきましたが、RABL は、他の一部のようにコントローラーではなく、ビューを介して応答を構築するという点で非常に魅力的です。
rspec - Rails 3.2.8 + FactoryGirl + RABL: datetime が返される方法の違い
私は次の工場を持っています:
そして次の仕様:
これで、body の内部にあるものと FactoryGirl (location_params) からのものの :created_at フィールドと :updated_at フィールドの間の比較を除いて、すべてが期待どおりに機能します (しゃれた意図はありません)。
仕様を実行すると返されるエラーは次のとおりです。
ご覧のとおり、応答の created_at と updated_at の両方が、FactoryGirl によって返されるものとは異なる方法で表現されています。
ここで明らかに欠けているのは何ですか?
よろしくお願いいたします。
ruby-on-rails - Rails3とRablを使用してJSONをHTMLに埋め込む
私は#322 RailsCastsをフォローしていますが、最後の部分で彼はjsonをhtmlに埋め込む方法についてコメントしています。
私のプロジェクトには、rablテンプレートがあります:app / views / Places / show.json.rabl
/places/21.jsonをレンダリングすると、次のように表示されます。
うまく機能していますが、jsonデータをhtmlに埋め込もうとすると、次のようになります。
エラーログ
{:locale => [:en]、:formats => [:html]、:handlers => [:erb、:builder、:coffee、:rabl]}のテンプレートplaces/21.jsonがありません。検索対象:* "/ home / ed / projects / rails_projects / final_u / app / views"
私は何を間違っていますか?
アップデート
私はちょうど解決策を見つけました
そしてそれは動作しますが、理由はわかりません..そしてここに別の質問があります
単一のオブジェクトをrender(template: "")に渡す方法がありますか?
よろしくお願いします....そして私の英語をごめんなさい
ruby-on-rails - RoR 3のrender(:template => "template.json.rabl")にオブジェクトを渡す
jsonをhtmlに埋め込む必要があり、#322RailsCastsでRABLを使用してそれを行う方法を説明しています...
これが私のrablテンプレートです
正常に動作していますが、次のような他のビューでrabl-templateをレンダリングしたいと思います。
次のメッセージエラーが表示されます
nil:NilClassの未定義のメソッド `type_place'
メッセージから、エラーはオブジェクトの場所をテンプレートに渡していないことだと思います...私は多くのことを試みましたが、これを取得できませんでした。
よろしくお願いします。英語でごめんなさい
ruby-on-rails - API用のRabl、Jbuilder、または手動のjsonビルド?
大規模なアプリケーション用の API をビルドするには、パフォーマンスの観点からどの方法が優れているか、Rabl を使用するか、Jbuilder を使用するか、json オブジェクトを手動でビルドする必要がありますか?モバイル アプリ用の API /エンドポイントをビルドしています。
ruby-on-rails - サーバー側のハンドルバーで RABL テンプレートを使用する
Rails プロジェクトでは、クライアント側とサーバー側の両方のテンプレートにハンドルバー (sht_rails を使用) を使用します。クライアント側のテンプレートをフィードするには、JSON データを提供する RABL テンプレートを使用します。サーバー側で同じデータを持つ同じテンプレートを使用したいのですが、サーバー側のテンプレートには JSON 文字列ではなくハッシュが必要です。
一時的な解決策として、render_to_string
JSON データを生成してJSON.parse
からハッシュを取得するために使用しますが、見栄えが悪いようです... RABL テンプレートを使用してハッシュをレンダリングするためのより良い方法はありますか?
github で説明されている解決策を試しましたが、成功しませんでした。in out テンプレートを使用object false
しているため、 に何を渡せばよいかわかりませんRabl::Renderer#new
。さらに、いくつかの RoR 固有のメソッド ( などroot_url
) を使用していますが、それらは失敗しているようです。
ruby-on-rails - RABLは、ActiveRecordのタイムスタンプまたは日時を文字列ではなく数値としてレンダリングします
私は現在、as_json
API生成のためにActiveRecordからRABLに切り替える過程にあります。
as_json
私のモデルのタイムスタンプをフォーマットの文字列としてレンダリングしています2012-09-16T22:14:11+00:00
。ただし、RABLに切り替えると、タイムスタンプは次のようなエポック番号としてレンダリングを開始しました1347926218.084763000
(これらの日付は2つの異なるオブジェクトからのものであり、同じではないことに注意してください)。文字列形式を強制する方法はありますか?
私の.rablテンプレートは非常に単純です。
そして私は得る:
ruby-on-rails - Rabl を Erb json ビューに変換します
私はこの .json.rabl ビューを .json.erb に変換しようとしていますが、ルビーが初めてなので、これを達成するための方向性を探しています。これについて最善の方法は何ですか?
ruby-on-rails - Rabl 1+N クエリとビューの読み込みが遅い
次のような構造で、ネストされた子を持つRailsアクションによって強化されたRablビューがあります。
つまり、rabl ビューは次のようになります。
Rabl が新しいクエリを実行して、各バー オブジェクトと各 baz オブジェクト (最大 7 つの baz オブジェクトがあります) をロードするという事実を除いて、これは素晴らしく機能します。元のコレクションを生成するクエリは 100 ミリ秒未満で返されますが、合計レンダリング時間は 8 秒以上かかり、foo
レコードごとに約 30 の追加クエリが含まれます。関連する行をプリロードする構文を使用してincludes
、Rabl がそれらを再ロードする必要がないようにしてみましたが、送信された情報を無視しているようです。
この操作を最適化して、可能な限り最高のパフォーマンスを得る方法についてのアイデアを探しています。ここから攻撃する正しい方法が本当に何であるかはよくわかりません。
前もって感謝します。
ruby-on-rails - jsonオブジェクトのrablwrapコレクション
私はRABLを使用してJSON応答を生成しています。次の構造を実現するのに問題があります。
メディア配列を含む@articesオブジェクトがあります。私は次のようなrablconfigセットアップを持っています:
これまでの私の.rablテンプレートは次のようになります。
この構造内にメディア情報を追加できません。
助けていただければ幸いです