問題タブ [trailblazer]

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 に答える
102 参照

trailblazer - Paperdragon を使用した Trailblazer Operation は、どのようにして画像を順次処理できますか?

Paperdragon を使用して画像を処理する Trailblazer 操作では、次のようなコードが一般的です。

これにより、アップロードされた画像から 4 つのバージョンが作成さuploadれ、操作の契約に従ってアクセス可能になります。

、およびのベースラインとして使用するために、いくつかのことを:original行いたいと思います。Paperdragon でそれを実現するにはどうすればよいですか?:edited:edited:verson_a:version_b:version_c

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

ruby-on-rails - 外部 gem とやり取りする Trailblazer 操作をテスト/モックする方法は?

Trailblazer のオブジェクト指向のすべての美しさが大好きです。

ジェム ( と呼ばれる) と対話してcpanel_deployer、Web 上で外部から何かを行う操作があります。(アドオン ドメインを cpanel に追加します。)

gem は既にテスト済みなので、cpanel_deloyerここで機能を再テストする必要はありません。CpanelDeployer::Panel#add_domainしかし、操作をテストするために、正しい引数で呼び出されることを確認したいと思います。だから私は嘲笑すべきだと思っていCpanelDeployer::Panelます。

を使用しようとするのは悪い習慣だと思いますany_instance_of。思考ボットによると、通常はコードの匂いと考えられています...彼らは依存性注入の使用を推奨しています。Trailblazer 操作内で依存性注入を使用する良い方法はありますか? この種の状況に対する別のベスト プラクティスはありますか?

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

trailblazer - 継承された Trailblazer オペレーションのコントラクトは、そのスーパークラスによって定義された検証を変更できますか?

Trailblazer操作が継承によって定義されると、そのスーパークラスのコントラクトが継承されます。

継承された Trailblazer 操作のコントラクトは、そのスーパークラスによって定義された検証を変更できますか?

この疑問が生じたのは、作成操作のコントラクトが、更新操作でオプションにする必要がある必須プロパティを定義したためです。

最初の考えは、継承されたクラスでこの定義を何らかの形でにすることでしたが、これを行う方法はないようでした(サブクラスのプロパティを無視するwriteable:falseことは可能です( - book p61)が、方法がないようですその妥当性基準を変更します)。

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

ruby-on-rails - サーバーの実行中に Rails コードを変更すると、Trailblazer 操作でクラスからのスーパークラスの不一致エラーが発生する

TrailblazerRails で gem を使用していますが、サーバーの実行中にコードを変更するたびに、エラーをスローし始める操作Cellの 1 つにクラスがあります。Trailblazersuperclass mismatch

サーバーを起動してすぐにサイトのナビゲートを開始すると、すべて正常に動作します。

ただし、サーバーの起動後にコードを変更して、サイトにページをロードしようとすると、superclass mismatchエラーが発生します。

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

trailblazer - Trailblazer の概念を別の概念から継承して、その操作を拡張できますか (多重継承)?

Tagさまざまな種類のタグが存在する抽象的な概念を考えてみましょうTopicLocationタグであること以外は無関係です。これらは共通の基本Tagプロパティを持ちますが、それ以外は異なります。

コンセプトは類似のコンセプトTopicに基づいていTagます。のような操作Topic::Updateは通常 から継承しTopic::Createますが、そのような操作も から継承する必要がありますTag::Update。Ruby は多重継承をサポートしていません。Trailblazer はこれをサポートできますか?

  • Trailblazer の操作は、提供されたハッシュbuildsの内容に基づいてサブクラスをインスタンス化できるブロックによる継承をサポートします。paramsこれは、基本クラス ( Tag) が公開されており、基本クラスを介して操作が呼び出される場合に機能します。ただし、この例では、公開クラスはTopicサブクラスです。

  • 操作はサブクラス ( ) を介して呼び出す必要がありますTopicが、その操作は共通のTag基本クラス (リバース ビルダー?) に基づいています。

これは、単一の継承によって実現できる 1 つの方法です (ただし、このアプローチの欠点を示しています)...

各タイプのタグは独自のデータベース テーブルに格納され、次のような ActiveRecord クラスがあります。

Trailblazer の概念は同様の設計に従います。Tag操作は基本機能を提供し、より具体的な操作によってサブクラス化されます ( Topic)。Tag操作は直接使用されません。Topicたとえば、コントローラーがTopic操作を使用します。

操作はTopicから継承しますが、各操作内でのみ可能と思われるTag独自のモデルを指定する必要があり、それぞれを明示的にサブクラス化する必要があります。Topic

これに関する問題は、基本操作で定義されているコントラクトが、それを aTagではなく a であるTopicと見なし、モデルとして使用される場合に問題が発生することです。これがどこに問題があるかを示す例は、セルのビューにTopicあります。概念には、オブジェクトを操作するためのビューを提示するセルがあります。simple_form_for次のように、を使用してフォームをレンダリングします。

コントラクトはそれTag

  • そのパラメータはparams[:tag]代わりにとして送信されますparams[:topic]
  • 送信ボタンのラベルはCreate TopicではなくCreate Tagです。

operation.model送信された操作が失敗した後にレンダリングするときにフォームエラーが表示されないため、セルは使用できません(それ以外の場合は機能します)。

これを解決する方法は、次のように明示することsimple_form_forです。

プロパティを に追加する場合、コントラクトTopicを拡張する必要があるため、別の問題が発生します。Tagこれを行う通常の方法はcontract do..end、操作にブロックを追加することTopic::Createです。問題が発生するのは、そのようなブロックが および からではなく対応するブロックから継承さTopic::UpdateれてTopic::Deleteいるためです。TagTopic::Create

別の方法は、サブクラス化されたTopic::Update操作を から継承することTopic::Createです。これにより、モデルを指定する必要がなくなりますが (指定するため)、操作Topic::Createによって追加されたものはすべて失われます。Tag::Update

は継承されていないため再指定する必要がありますが、 は継承されているため、actionで追加されたプロパティは で使用できます。Tag::UpdateTopic::CreateTopic::CreateTopic::Update

これらのスタイルはどちらも、変更が 1 つの基本クラスのみにある限り機能します。Rubyは多重継承をサポートしていないため、両方に変更があると壊れます。Delete通常は次のような操作を考えてみましょう。

もしそうなら、どちらかである可能性がありTag::DeleteますTopic::Delete

また

前者の場合、Topic::Deleteは によって追加されたプロパティを認識せずTopic::Create、後者の場合は で定義されたメソッドTopic::Deleteを欠いています。processTag::Delete

Trailblazer の概念が別の概念を継承し、その操作を拡張するにはどうすればよいでしょうか?

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

ruby-on-rails - Trailblazer Rails React - .jsx から「concep」を呼び出すにはどうすればよいですか?

.JSX 内で呼び出したい

、同じJSXでビューフォームを表示するにはどうすればよいですか? JSX 内で Rail を使用することはできないと思います。ありがとう!

前もって感謝します!

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

ruby-on-rails - 改革: ドライ検証マッチャー

Reformベースのフォーム オブジェクトの検証をテストする便利な方法を探しています。

dry-validationsをテストするためのマッチャー (ActiveModel::Validations をテストするための shoulda マッチャーなど) はありますか? これは進むべき道ですか?