問題タブ [view-helpers]

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

ruby-on-rails-3 - Rails3 Engine ヘルパーのオーバーライド

だから私は Rails 3.0 Engine (gem) を持っています。

app/controllers/advanced_controller.rb でコントローラーを提供し、app/helpers/advanced_helper.rb で対応するヘルパーを提供します。(もちろん、いくつかのビュー)。

これまでのところ、コントローラー/ヘルパー/ビューは、gem を使用してアプリケーションで自動的に利用できるようになりました。

しかし、ローカル アプリケーションがエンジン内の AdvancedHelper からヘルパー メソッドを選択的に上書きできるようにしたい (理想的には「super」を呼び出せるようにしたい)。それは、完全に合理的な (そして私は一般的だと思う) 設計を許可したいのはかなり合理的なことでしょうか?

問題は、それを機能させる方法が見つからないようです。アプリケーションが独自の app/helpers/advanced_helper.rb (AdvancedHelper) を定義している場合、エンジンからのものはまったく読み込まれません。そのため、(super を呼び出さずに) そこにあるすべてのヘルパー メソッドを置き換えたい場合に機能します。 、ただし、オーバーライドしたいだけの場合はそうではありません。

そういうのは実際には意味があるので、別の名前を選びます。私のローカルのものを ./app/helpers/local_advanced_helper.rb (LocalAdvancedHelper) と呼びましょう。このヘルパーは読み込まれます。元のエンジンの AdvancedHelper にないメソッドをそこに配置すると、ビューで使用できます。

しかし、エンジンの AdvancedHelper と同じ名前のメソッドをそこに配置すると、ローカルのメソッドは決して呼び出されません。AdvancedHelper (エンジンから) が LocalAdvancedHelper (アプリから) よりもコール チェーンの前にあるようです。確かに、デバッガーをオンにして helpers.ancestors を見ると、まさにそれが起こっていることであり、先祖チェーンで必要な逆の順序になっています。したがって、AdvancedHelper (エンジンから) は理論的には「super」を呼び出して (アプリから) LocalAdvancedHelper を呼び出すことができますが、もちろんそれを行う意味はあまりありません。

でもやりたいことが… できない。

アプリがエンジンからのヘルパー メソッドを選択的にオーバーライドできるこのデザインを提供する方法はありますか?

なぜそれがこのように機能しているのか、誰にも説明がありますか? Rails の実際のソース コードを調べてみましたが、すぐにわからなくなってしまいました。この部分のコードは、非常に抽象的で、いくつかの場所に分かれています。

これはかなり難解な質問です。私は悲観的ですが、誰もが何らかのアイデアを持っていると思います。驚かせてください!

== 更新

さて、Rails コードのどの部分がどこで呼び出されているかを理解するために、各ヘルパーに「def self.included ; debugger ; end」を配置し、デバッガーで例外を発生させてスタック トレースを表示します。

Rails のコードはあちこち飛び回っていて、かなり混乱しています。

しかし、「標準」名のヘルパー (WidgetController の WidgetHelper など) は、特定のコントローラーの「マスター」ビュー ヘルパー モジュールに含めるために、他のヘルパーとは異なる Rails コードによって呼び出されることは明らかです。ヘルパーに別の名前を付けてから、("helper OtherNamedAdvancedHelper") を使用してコントローラーに手動で含めるかどうか疑問に思っています。それによってロード順序が変更される場合があります。

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

php - ビュー スクリプトが zend フレームワークのビュー ヘルパーを認識しない

私の問題は、ビュースクリプトからビューヘルパーを呼び出すと、次の行を介して構成ファイルにすべての情報パスを適切に追加したにもかかわらず、呼び出すことができないということです。

また、ヘルパーをブートストラップファイルに登録しました

しかし、無駄に、まだこのエラーメッセージを出力しています:

期待どおりのカスタム ビュー ヘルパー パスが含まれていません。

ビュー ヘルパーのパスは次のとおりです: library/ZF/View/Helper/OutputHelper.php

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

ruby-on-rails - ヘルパーからレンダリングすると、「テンプレートがありません」というエラーが発生します

クーポンビューで、helpers / cupons_helper.rbのメソッドを呼び出します。このメソッドは、出力を返す目的でパーシャルを呼び出します。しかし、「テンプレートがありません」というエラーが表示されます。関連するコードは次のとおりです。

そして、エラーメッセージは次のとおりです。

問題は、「new_include」の「render」の先頭の「_」であることが判明しました。問題が解決しました。

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

zend-framework - コハナでヘルパーを見る

私は次のことを行う方法を見つけようとしています:

ページがリロードされたときにajaxとページの内部部分を介してロードされるアクションを作成したいと思います。

View HelperZENDを使用してフレームワークでこれを知っていますが、方法がわかりませんKohana

コハナは初めてです。

編集: 私がやろうとしていることの例http://www.espncricinfo.com/west-indies-v-india-2011/engine/current/match/489228.html?CMP=chrome

上記のWebページでは、Webページ全体がロードされると、ライブスコアボードにロードされます。ただし、[スコアボードの更新]ボタンをクリックすると、ライブスコアボードのみがajaxに置き換えられます。

action_scoreboardスコアボードデータを取得するために使用されるアクションを作成したいと思います。そしてaction_index、ページ全体をロードするために、しかしaction_index私がビューにいる間、を呼び出す必要がありますaction_scoreboard

ありがとう

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

ruby-on-rails - モデルでRailsヘルパーを使用する

重複の可能性:
レール内のモデルのビューヘルパーにアクセスする

これはおそらく私が頻繁に行うべきことではないことはわかっていますが、モデル内でヘルパーを使用したいと思います。

レポートモデルでスプレッドシートを生成していますがtime_ago_in_wordsActionView::Helpers::DateHelper

これは実行可能ですか、それともビューで生成する必要がありますか?

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

ruby-on-rails-3 - 名前空間内のすべてのビューのヘルパー

名前空間内のすべてのビューで使用できるビュー ヘルパー ファイルを作成する方法はありますか? application_helper.rb と同様ですが、特定の名前空間に対してのみ機能します。

具体的には、「office」という名前空間があります。"office" 名前空間内の任意のビューにアクセスできるビュー ヘルパーを設定したいと考えています。

ありがとう。

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

zend-framework - Zend Framework の URL ビュー ヘルパーに完全な URL が表示されませんか?

次のような URL があります。

私のページネーター ビュー スクリプトでは、URL ビュー ヘルパーを呼び出して、ページ番号を URL に追加しています。

URL がリセットされないように渡すfalse必要がありますが、生成される URL には元のクエリ パラメータが含まれません。

...そして、次のようになります。

私は何を間違っていますか?

0 投票する
4 に答える
2650 参照

node.js - Express.js の EJS - Express Helpers が機能しない - (app) in require

Express.js で EJS テンプレート エンジンを使用しており、ビュー ヘルパーを使用したいと考えています。github でこれを見つけました: https://github.com/tanema/express-helpersですが、使用しようとすると次のエラーが発生します。

一方、この行は app.js の 12 行目です。

そして私がそれを作るなら

エラーはスローされますが、機能しません。

app.js ファイルのトップは次のとおりです。

アイデア?

前もって感謝します!

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

ruby-on-rails-3 - ヘルパーの子クラスでブロックをキャプチャする方法は?

私は次のことをしようとしています:

メソッドheadingまたはブロックに文字列 (または記号) を指定します。

ビューで:

(getmhはこの例のためPModuleHelperのものであり、アプリケーションの他のプロセスによって返されるため、これについてコメントしたりheading、クラスメソッドではなく通常のヘルパーメソッドを作成することを提案したりする必要はありません)

残念ながら、私は常に次のエラーが発生します。

capture(&block)コールの回線番号付き。

capture独自のヘルパー クラス内で使用する方法は?

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

ruby-on-rails-3 - Rails select_collection

私はこのようなsmthを持っています:オプション付きのf.collection_select

そのcollection_selectの標準的な動作を変更する必要があります(そこにいくつかのオプションを追加する必要があります)

どこでやればいいですか?

このコードは機能していないと思いますが、あなたはその考えを理解するでしょう