問題タブ [mobility]
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.
mobility - Mobility gem の更新
モビリティジェムを更新したいと思います。
v0.1.10 から v0.3.6 に更新する際に既知の問題や必要な手順はありますか? または、それ以上の手順を必要とせずに更新できますか?
ruby-on-rails - Mobilityを使用してRailsで翻訳された列で注文できません
この質問は、Mobility GitHub プロジェクトに投稿された問題に基づいています。
環境
- レール: 5.0.6
- Mobility : 0.4.2 (テーブル バックエンドあり)
複数の記事タイプ (ブログ投稿、ケース スタディ、ナレッジ ベース記事など) をサポートする記事テーブルを使用しています。このテーブルには、記事が表示された回数を追跡するための列 (記事show
に対してアクションが呼び出されるたびに増加する整数列) が含まれています。
これらの記事の翻訳を実装する際に、メインの記事オブジェクトではなく、各翻訳のビュー数を個別に追跡したいと考えています。これを実現するためviews
に、オブジェクトの翻訳済みプロパティの 1 つとしてプロパティを含めました。
予想される行動
私のコントローラーでは、次のクエリで取得する、最も閲覧された記事のトップ 10 をリストしたいと考えています。
モビリティを実装する前と同様に、一連の記事を受け取ることを期待しています。
実際の動作
代わりに得られるのは#<Article::ActiveRecord_Relation:0x233686c>
. それを で配列に変換しようとすると@top_articles.to_a
、次のエラーが発生します。
含むようにクエリを変更しますi18n
。
… を返します#<#<Mobility::Backends::ActiveRecord::Table::QueryMethods:0x00000000050a86d8>:0x286c3e0>
。それを配列に変換しようとすると、同じ結果が得られます。
Mobility は句での翻訳済みフィールドの使用をサポートしていますが、現在、アクティブ レコード クエリwhere
の句ではそれらをサポートしていません。order
回避策の試み
order
1.節で翻訳表を参照する
gem の作成者からのフィードバックに基づいて、次のクエリを試しました。
…#<#<Mobility::Backends::ActiveRecord::Table::QueryMethods>>
オブジェクトを返し、次のto_a
エラーを返します。
joins
2. 変換テーブルにorincludes
句を追加します
#<#<Mobility::Backends::ActiveRecord::Table::QueryMethods>>
このクエリもオブジェクトを返し、to_a
結果は次のようになります。
3.has_many :article_translations
モデルに追加
モデルにリレーションを追加すると、次のエラーがスローされます。
それで…</h2>
次に何を試せばいいですか?