問題タブ [service-object]

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 投票する
1 に答える
553 参照

ruby-on-rails - Rails サービス オブジェクトとコントローラー

コントローラーをサービス オブジェクトに渡すのが好きな同僚がいます。たとえば、コントローラ メソッドは次のようになります。

サービス オブジェクトは次のようになります。

どういうわけか、これは逆効果であり、カーゴカルトのソフトウェア エンジニアリングの例であると感じています。

サービスオブジェクトをコントローラーから完全に分離したいです。依存関係はサービス オブジェクトのコンストラクターに渡され、パラメーターはメソッドの引数としてサービス オブジェクトに渡されます。結果はメソッドから単純に返されます。

悲しいことに、私がコード レビューでこの問題を持ち出すたびに、私の同僚はこれにまったく興奮していません。

それぞれのアプローチの長所と短所は何ですか? どうすれば自分の主張をうまく主張できますか? ここで何か不足していますか?

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

ruby-on-rails - Rails関連テーブルは更新されません

私は2つのモデルを持っています

インフルエンサーには、インフルエンサーの権限がたくさんあります

インフルエンサーにログインまたは署名しようとしています

しかし、古いユーザーがログインしようとすると、OAuth トークンが更新されません

Facebook コントローラー

Facebook クライアント

検査を保存する直前に、Oauth トークンがに設定されています@influencer.influencer_authorizations[0].oauth_token

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

ruby-on-rails - サービスオブジェクトのフォルダを整理するレール

AR モデルからいくつかのメソッドを抽出するサービス オブジェクトを作成しようとしていますproduct.rbが、何らかの理由で新しいTwitterShareクラスを自動ロードできません。コンソールを起動して、次のようなことを試みるとProduct.last.twitter_share_textNameError: uninitialized constant Product::TwitterShareエラーが発生します。

ここで何が起こっているのですか?フォルダ/ファイルを整理するにはどうすればよいですか? Railsにサービスを自動ロードするように指示する必要がありますか? 現在のコードは次のとおりです。

アプリ/モデル/product.rb

アプリ/サービス/twitter_share.rb

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

ruby-on-rails - ヘルパー/サービスを使用するrails4とそれを配置する場所

twitter でシェアする商品属性の長さに基づいてテキストを組み立てるために、このクラスを作成しました。

私の質問:

  • これは問題に取り組むための良いアプローチですか?これじゃないなら何?(クラスとメソッドをどこに置くべきか、どのように呼び出すかなど)
  • これが良いアプローチである場合、何を変更する必要がありますか? たとえば、 は にあるdef twitter_share_textべきではないと感じていますproduct.rb

show.html.erb

product.rb

アプリ/サービス/twitter_product_share.rb

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

ruby-on-rails - ビューでサービス オブジェクトを設計する方法は?

前書き: サービス オブジェクトの概念を誤解している可能性があり、別の実装を設計する必要があります。前もって感謝します。


SMS 確認用のサービス オブジェクトを作成します。ユーザーは次の場合に自分の行動を確認する必要があります。

  • 彼は電話番号を送信します (自分のプロフィールを更新します)。
  • 彼は取引を確認します。
  • 彼は他の重要な行動をとります。

通信スキームは次のとおりです。 ここに画像の説明を入力

コード:

profile_controller:

sms_confirmation_service:

render_view メソッドに固執しました。「Missing template profile/update」が表示されますが、ログによると、テンプレートは次のようにレンダリングされます。

それを解決する方法は?

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

design-patterns - サービス オブジェクト、トランザクション スクリプト、および戦略の設計パターンは同じですか?

Service Objectデザイン パターンの定義が見つかりませんでした。

トランザクション スクリプトの設計パターン

各プロシージャがプレゼンテーションからの 1 つの要求を処理するプロシージャごとにビジネス ロジックを編成します。

戦略設計パターン

アルゴリズムのファミリーを定義し、それぞれをカプセル化し、交換可能にします。戦略により、アルゴリズムは、それを使用するクライアントとは独立して変更できます。

それらは似ている/等しいですか?

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

ruby-on-rails - ステータスを返すサービス オブジェクト

コントローラーのアクションでサービス オブジェクトを使用する Rails json API を作成しており、適切な json をレンダリングする必要があるサービスで起こったことに基づいています。例は次のようになります。

star_service.rb

place_controller.rb

私の質問は、サービス オブジェクトからプレーン テキストを返すべきか、それともより良い方法があるかということです。