問題タブ [draper]

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.

0 投票する
0 に答える
407 参照

ruby-on-rails - サイト全体のビューロジックにアプリケーションデコレータを使用するにはどうすればよいですか?

Draperで最近のRailscastsのエピソードを見た後、Decoratorパターンを利用するために自分のもののいくつかをリファクタリングすることに挑戦したいと思いました。そして、すぐに自分自身を混乱させることができました。

アプリケーションレイアウトファイルに、ログインしているかどうかに応じてログインリンクまたはログアウトリンクを提供するビューロジックがあります。

そのロジックをデコレータに移動するための完璧な候補のようです。しかし、これはアプリ全体のビューロジックなので、何を飾っていますか?アプリケーションデコレータを作成したいと思いますが、アプリデコレータオブジェクトをインスタンス化する方法と、それを参照する方法がわかりません。

Railscastsのエピソードでは、アプリデコレーターを作成する方法を示していますが、特定のコントローラー(つまり、アプリコントローラーではない)内から参照されています。サイトのすべてのページから装飾されたビューロジックにアクセスできるように、どのように構造化するのですか?

0 投票する
1 に答える
962 参照

ruby-on-rails - rspec を使用した Draper 拡張モデルのテスト

ドレーパーを使用してロジックの一部を抽象化する前に、正常に機能したビューの rspec テストがあります。ビューはブラウザーで正しくレンダリングされますが、テストは失敗します。

ビューには、decorators/article_decorator.rb で定義されているデコレータ メソッドへの呼び出しが含まれていますがcalendars、おそらく stub_model を使用しているため、rspec はこれを検出していません。

テストを再び機能させるにはどうすればよいですか? (または、私のビューをテストするより良い方法はありますか?)

0 投票する
2 に答える
3551 参照

ruby-on-rails - ドレーパーデコレータを使用したrspecによるテストビュー

Rspecでビューをテストしてみます。私の見解では、Draperによって生成されたデコレータがあります。このデコレータは、decent_exposuregemによって公開されます。

私はそのようなrspecテストを作成します:

ヘルパーのスタブで、Draperデコレータを生成します。このデコレータには、ヘルパーを呼び出すメソッドがありますlink_to

しかし、このテストを開始すると、エラーが発生します:

デコレータによるすべてのヘルパー呼び出しのスタブは必要ありません。では、どうすればよいですか?

0 投票する
1 に答える
541 参照

ruby-on-rails - コントローラースペック+ドレーパー

私はrspecとdrapergemを使用していますhttps://github.com/jcasimir/draper

私のコントローラーでは、それは単純なアクションショーです

とテスト

プロジェクトではすべて正常に動作し、製品は正常に表示されますが、テストではそのようなエラーが発生します

また、ProductDecorator.decorate(@ category.products)を@ category.productsだけに置き換えても、エラーは発生しません

@productsを調べたら

取得しました

助言がありますか?

0 投票する
2 に答える
1483 参照

ruby-on-rails - Draper で RABL を使用して to_json をレンダリングする

モデルのアプリケーションにかなり複雑な JSON 応答がいくつかあるので、それらの応答を作成するのはTicket私にしたいと考えています。TicketDecorator

ただし、システム用の API を既にセットアップしており、RABL を使用してこれらの JSON 応答を作成しているため、既に作成したテンプレートを再利用したいと考えています。

次のように、メソッド内から RABL テンプレートをレンダリングできるかどうか疑問に思っていますTicketDecorator

これが私のRABLテンプレートですtickets/show.json.rabl

ここに私のTicketDecorator方法があります:

ただし、@ticket を正常に設定できないため、これは機能せず、次のようなエラーが表示され undefined method `first_attachment_url' for nil:NilClassます@ticket

これら2つをうまく連携させる方法について、誰か良い解決策がありますか?

render_to_string私の唯一の本当の考えは、テンプレートを文字列にレンダリングし、RABL を手動で使用することですが、ビューヘルパーではないため、Draper 内でどのように呼び出すことができるかわかりません。

それについて何か考えはありますか?

0 投票する
1 に答える
1658 参照

ruby-on-rails - Draper - デコレータの RSpec テストによる NoMethodError

Draperでテストしようとすると、次のエラーが表示されます。

ここに私のテストコードがあります:

そして、ここに私のデコレータコードがあります:

私の調査によると、この行ApplicationController.new.set_current_view_contextはこれを修正する必要がありますが、修正されていません。何かご意見は?

0 投票する
1 に答える
444 参照

ruby-on-rails-3 - Rails + jQuery-tokeninput + Draper デコレータ メソッド

Rails + jQuery-tokeninput を使用して先行入力検索を実行し、「belongs_to」関係を設定しています。モデルは次のとおりです。

このプロジェクトではDraperを使用して、モデルにデコレータを提供しています。

CompositionDecorator には次のメソッドがあります。

次のようにデコレータを使用するように tokeninput サポートを設定しました。

コントローラーの index メソッドは、次のようにデコレーターを呼び出します。

デコレータを使用していない場合、これはすべて正常に機能しているように見えますが、デコレータを追加すると問題が発生します。コントローラーが生成するjsonに「full_title」属性が含まれていないため、選択値に「undefined」と表示され、検索結果一覧に何も表示されません。次のエラーは、javascript コンソールにも表示されます。

TypeError: 'undefined' はオブジェクトではありません ('value.replace' を評価しています)

どんな助けでも大歓迎です!

0 投票する
1 に答える
4619 参照

ruby-on-rails - Rails 3のDraperでネストされた属性(関連付け)を装飾する方法は?

私の環境:

ネストされたリソースを使用していて、デコレータを宣言する場所がわかりません。

に置き換えitemsてみましたがItemDecorator、うまくいきませんでした。どこに置けばいいですか?

Draper がフォーム内のネストされたリソースに問題があることは知っていますが、これはフォームではありません!

0 投票する
2 に答える
4100 参照

ruby-on-rails - Draper 0.14.0 を使用してデコレータ スペック ファイルのヘルパー メソッドにアクセスするにはどうすればよいですか

現在、spec/decorators/product_decorator_spec.rb には、次のものがあります。

仕様を実行すると、次のようになります。

ドキュメントによると、デコレータ フォルダーに配置されたスペックはヘルパー メソッドにアクセスできるはずですが、私のスペックはそうではありません。また、手動でスペックにタグを付けようとしましたが、効果がないようです。

ご覧いただきありがとうございます。

0 投票する
0 に答える
813 参照

ruby-on-rails-3 - Draper: 装飾されたモデルのすべての許可された属性とパブリック メソッドを json に変換する方法

クライアント側のテンプレートで使用するために、装飾されたモデルを json に変換する簡単な方法を探しています。装飾されたモデルのすべての許可された属性とパブリック メソッドが json に保持されるソリューションを見つけたいと思います。

現在、Rails バックエンドを使用したバックボーン RIA を使用しています。クライアント側のテンプレートには、haml_coffee_assets gem を使用しています。Draper は、ユーザー モデルの装飾を提供するためにあります

私のコントローラーコードは次のようになります:

私の見解では、バックボーンアプリを初期化しています:

醜い #for_json デコレータ メソッドを削除する方法はありますか?