問題タブ [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 - rails : rabl gem、型変換のカスタマイズ
Mongoid で Mongo DB を使用していますが、Mongo Mapper でも同じことが起こります。
次の出力が得られます。
私はこのきれいな構文を維持したいと思います:
代わりに書く:
したがって、rablのある時点で、タイプをキャッチして変換したいと思います。それを行う方法はありますか?
ruby-on-rails - rabl で 2 つの異なるタイプを処理する
場所と呼ばれるテーブルとアイテムと呼ばれるテーブルに対して検索を行っています。どちらも短いテーブル (2k アイテム) であるため、このクエリのパフォーマンスについて心配する必要はありません。
次々と検索して、2 つの異なるタイプのオブジェクトを 1 つの配列として返します。これらの状況のいずれかを処理するために rabl テンプレートを使用できる方法はありますか? 何かのようなもの:
どうも
編集#1 これを試しましたが、これが私に何をもたらすのかわかりません。配列はさまざまなオブジェクトの単なるリストであり、配列の平坦化が何を達成するのかわかりません。
login - デバイスを使用してオブジェクトの特定の属性をレンダリングする方法は?
私はdevise gemを使用しています。すべてがうまく機能しますが、問題はログイン後にユーザーオブジェクト全体がレンダリングされることです。したがって、json リクエストを送信してログインすると、ユーザー オブジェクトが保持するすべてのものが返されます。登録時に rabl ファイルを使用して特定の属性に制限することができました。私がしたことは、views/devise/registration に create.rabl を作成したことです。しかし、同じことがログインには機能しません。では、devise を使用してリソース属性を制限するにはどうすればよいでしょうか。
ruby-on-rails - Rabl 戻り文字列 Rails
私のコントローラーには
私は応答を返したいです:
"response" => @response 、Rails で Rabl を使用してそれを行うには??
ruby-on-rails - 複数の子モデルと入れ子の RABL -- HTML で動作
RABL を使用して、次の index.html.erb ファイルの JSON 出力を作成しようとしています。
この時点で、100 万通りの方法で試しましたが、完全に完全に行き詰っているので、だれかが index.json.rabl ファイルのコードを生成するのを手伝ってくれることを期待していました。
ruby-on-rails - HAML は、テンプレート エンジンが HTML 以外のものをレンダリングするのを防ぎます
私は Jbuilder を使用しています (そして、Rabl も使用しようとしました) json をレンダリングします。アプリケーションで jbuilder テンプレートをレンダリングしようとすると、レイアウト/アプリケーションファイル内のテンプレートがレンダリングされ、 HTMLが JSON として返されます (「レイアウト/アプリケーション内」の行を参照)。
ただし、テンプレートを使用せずに json をレンダリングしてrender json: @ride.as_json
呼び出しを行うと、期待どおりに動作します。新しいアプリケーションを作成して同じことをしようとすると、すべてが期待どおりに機能します。
テンプレートを正しくレンダリングしていないアプリケーションで何をしたかわかりません。何か案は?
ruby-on-rails - 単一ページ アプリケーションのパフォーマンスを向上させる方法は?
はじめにBackboneJS と Rails バックエンドで構築され
た (ほとんどの) シングルページアプリケーションがあります。
ほとんどのインタラクションは Web アプリケーションの 1 つのページで発生するため、ユーザーが最初にそのページにアクセスしたときに、基本的に、深く結合された 1 つの大きなクエリでデータベースから大量の情報を引き出す必要があります。
これにより、この 1 つのページで極端な読み込み時間が発生しています。
NewRelic は、私の問題のほとんどは 457 の個別の高速メソッド呼び出しが原因であると言っているようです。
これで、実行できる熱心な読み込みをすべて実行しましたが ( Bullet gemで確認しました)、まだ問題があります。
これらのメソッド呼び出しは、バックボーンを初期化するためにページに埋め込むために大量の JSON をシリアル化するために使用するRabl シリアライザーで発生する可能性が最も高いです。このすべてを理解する必要はありませんが、最大 457 のメソッド呼び出しを追加できると言えば十分です。
だから私はこれについて何かをする必要があるようですが、どのアプローチを取るべきかわかりません。ここに私が持っている潜在的なアイデアのリストがあります:
パフォーマンス改善のアイデア
インターフェースの
ダムダウン おそらく、実際のデータの存在を必要としない、ユーザーに情報を提示する方法を思い付くことができます。なぜこれを絶対に行う必要があるのか わかりませんが、Trelloなどの他の単一ページアプリには信じられないほど複雑なインターフェースがあります.
コンセプトのページ付け コンセプト
をページ付けすると、毎回データベースから抽出されるデータの量が減ります。ただし、劣ったユーザーインターフェイスを生成します。
キャッシュ
現時点では、ページを更新すると、検索全体が DB から再度抽出されます。おそらく、アプリの一部をキャッシュして、DB ヒットを減らすことができます。私が扱っているデータの多くは静的ではないため、これは面倒に思えます。
複数のリクエスト
JSON をページに埋め込まずにページを提供するのは技術的には良くありませんが、データを取り込まずにページを読み込んでからデータをフェッチすると、ユーザーは処理が速くなったように感じるかもしれません。
インデックス
すべての外部キーにインデックスがあることを確認する必要があります。また、インデックス (お気に入りなど) があると役立つ場所についても考えて追加する必要があります。
メソッド呼び出しを DB に移動
おそらく、ビュー レイヤーで実行した反復の結果の一部を DB にキャッシュし、計算する代わりにそれらを引き出すことができます。または、読み取り時ではなく書き込み時に同期することもできます。
質問
私が何に時間を費やすべきかについて何か提案はありますか?
rabl - RABL を使用した配列 xml 要素のエイリアシング
レガシー システムの出力と一致するように xml 出力を作成しようとしていますが、xml を一致させる方法がわかりません。基本的に、配列要素のノード名をデフォルトとは異なる名前に変更する必要があります。
次のようなモデルがあるとします。
RABL テンプレート:
xml を次のようにしたいと思います。
デフォルトで出てくるこれの代わりに:
私は RABL が初めてで、このようなものを生成する方法についてドキュメント/インターウェブで何も見つかりませんでした。前もって感謝します!
ruby-on-rails-3 - rabl とコレクションを使用して、追加の子ノードを追加するのに問題がある
json 応答で表示したい記事のコレクションがあります。また、要求された json リクエストのタイプに関するノードをエクスポートしたいと思います。
index.json.rabl
show.json.rabl
したがって、articles.json に移動すると、次のようになります。
私がやりたいことは、次のような結果を得ることです。
node(:rss) { "yadda yadda" } を index.json.rabl ファイルに入れてみましたが、各記事にノード :rss を追加するだけです。
使ってみた
index ファイルと show ファイルの両方で、どちらも期待どおりに機能しませんでした。
私は他にも多くのことを試しましたが、現時点では推測に過ぎません。
ruby-on-rails-3 - rakeタスクからrablビューにオブジェクトを渡すにはどうすればよいですか
rabl を使用して rake タスクから json ファイルを作成しようとしています。以下に、テスト用の簡略化されたバージョンを示します。
URL を介して「articles.json」または「articles/2.json」を表示すると、期待される json 応答が得られます。
しかし、rake タスクを介して実行しようとすると、作成された jsonFile の @articles に常に null 値が含まれます。@articles.count と同じ回数 index.json.rabl ビューをレンダリングしますが、値は常に null です。
では、rake タスクで作成した @articles オブジェクトを Rabl.render に渡すにはどうすればよいでしょうか?