問題タブ [helpermethods]

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

ruby-on-rails - カスタム ヘルパー メソッドを Ruby Gem に含める

Rails 3 で使用するために、Ruby gem にヘルパー メソッドを追加しようとしています。

これが私が達成しようとしているものの例です:

MyHelper.rb の先頭に次を追加してみました:

また、上記の行を init.rb ファイルに追加しようとしましたが、成功しませんでした。

ビューからのコードは次のとおりです...多分私はそれを間違って実装していますか?

助言がありますか?

0 投票する
3 に答える
1497 参照

ruby - Rails 3のCookieとヘルパーを使用するにはどうすればよいですか?

ユーザーを作成し、IDを永続的なCookieに保存しました。

ここにリンクがあります。

次に、それにアクセスしてみます。

ここにリンクがあります。

マシンにCookieが表示されますが、ホームページを読み込もうとすると、次のように表示されます。

コントローラはこちらです。

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

ruby-on-rails - Rails 3 での HTML 文字のエスケープに関する問題

fooビューでヘルパー関数を使用します。

Whenfooは次のように定義されます。

ページは次のようにレンダリングされます。

しかし、fooの定義を次のように変更した場合:

期待される結果が得られます:

foo期待される結果を得るには、上記の定義をどのように修正しますか? (つまり、文字をエスケープしたくない)

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

ruby-on-rails - コントローラー間でプライベート メソッドを共有する

X と Y の 2 つのコントローラーがあります。

X には、プライベート メソッド foo 用の :before_filter があります。

また、コントローラー X の上部に次のステートメントがあります。

helper_method :foo

コントローラ Y には、プライベート メソッド bar の :before_filter があります。bar では foo と呼びます。しかし、未定義のローカル変数またはメソッド エラーが発生するため、明らかにこれは許可されていません。私の :helper_method 宣言では、他のコントローラーで foo を使用できるようにする必要があると思います。

一般的に言えば、コントローラー Y で foo を呼び出すにはどうすればよいですか? foo を非公開のままにしておく方法はありますか? そうでない場合、 foo がプライベートでない場合、(優れた設計原則を順守しながら) どのように達成されますか?

ありがとう!

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

ruby-on-rails - rails select_tag の出力

私はレールに不慣れで、レール3で選択フォームの出力を使用する方法を理解するのに苦労しています。以下は私の選択タグです:

コンテキストから外れると少し混乱するかもしれませんが、エクスペリエンス ID の値を取得し、それを「作成」のコントローラー メソッドの変数に割り当てる必要があります。これは現在次のようになっています。

私がトリガーしたコードエラーに見られるように、エクスペリエンスIDが渡されています。experience_id は :order に関連付けられていませんか?

助けてくれてありがとう!

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

ruby-on-rails - アプリケーションコントローラでの使用または等しい(|| =)に関する質問

変数が存在しない場合に変数を設定するために、アプリケーションコントローラーメソッドでよく使用されるまたは等しい||=を見てきました。Railscasts 270の最新版です。しかし、質問があります。たとえば、このヘルパーメソッドを取り上げます。

私の理解では、@ current_userは、まだ存在しない場合に設定されます。これは、レールがデータベースに送信されたり、パフォーマンスが向上したりする必要がないことを意味します。

ただし、@current_userのスコープについては混乱しています。私たちのウェブサイトのユーザーが2人いるとしましょう。最初のもの(彼を「bob」と呼びましょう)がサイトに来て、@current_userを彼のユーザーオブジェクトに設定します。2番目のオブジェクト( "john")が入って、railsが@current_userを要求すると、ユーザーオブジェクトがまだbobではないのはなぜですか?結局のところ、bobがサイトにヒットしたときに@current_userがすでに一度設定されているので、変数は存在しますか?

混乱している。

0 投票する
3 に答える
7709 参照

ruby-on-rails - helper_method から部分的にレンダリングする

わかりましたので、アプリケーション コントローラーにヘルパー メソッドがあります。

そして、私はそれをビューで次のように呼び出します:

そして、それは1つだけでOKをレンダリングします(ただし...レンダリングパーシャルは、部分的なコンテンツだけではなく配列を返すようです?)が、run_testヘルパー呼び出しをビューに2回配置すると、二重レンダリングエラーが発生します。パーシャルで発生するべきではありません。

何か案は?

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

ruby-on-rails - ヘルパー メソッドのスコープの問題における再帰関数

わかりましたので、Awesome ネストされたセットを使用して、レール上でネストされたコメント システムをいじっています。私は現在、ネスティングを機能させるために再帰関数を実装しています (パフォーマンスに関してこれが非常に非効率的であることはわかっていますが、パフォーマンスを調整する前にこれを機能させたいだけです)。

したがって、アプリケーションコントローラーには次のようなものがあります(htmlの構築):

そして、次のようにコントローラーで呼び出します。

完全な再帰を行っているようです...ただし、1 つの親コメントと 1 つの子コメントの場合、コメントリストは親コメントのみを吐き出します。物事をログに記録すると、再帰呼び出し内で子が実際に @commentlist に追加されていることがわかりますが、親が再帰に入った場所に巻き戻すと、commentlist 変数には子が含まれなくなります。これらの変数のスコープを理解していないようです...内部再帰呼び出しから巻き戻された後、その値を保持するためにコメントリストが必要です。光を当てることができる人はいますか?(または、これを行うためのより良い方法がいくつかありますか?私の悪いスタイルのベルが頭の中で鳴っています)

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

java - ヘルパー メソッドを main_operation_methods と同じスコープに保持すると、可読性が低下します

私は MineSweeper プログラムを持っています。そこでは、次のようなシナリオに直面しています。

私の問題はどこですか?

何が必要ですか?

私が必要としているのは、メソッドをグループ化し、operation_ABC 内の helper_DEF と helper_IJK の可視性を減らす何らかの方法です。ここでは、明確に operation_ または helper_ と名付けましたが、私のプログラムの実際のシナリオは....

可読性の問題:このコードを読んだり拡張したりする必要がある開発者は、一見すべてが操作のように見えるため、操作とヘルパーを分離するのが難しいことに気付くでしょう。

私は何をしましたか? データなしで内部クラスを作成する予定でしたが、2つの不安を感じました。

  1. データメンバーなしでクラスを作成します。
  2. その操作を呼び出す必要があるときはいつでも、オブジェクトを作成して呼び出す必要があります (ヘルパー メソッドが外部クラス データにアクセスするため、静的内部クラス メソッドは機能しません)。
0 投票する
2 に答える
135 参照

ruby-on-rails - CSS スタイル time_ago_in_words レール

Railsヘルパーtime_ago_in_wordsをカスタマイズするための最良の解決策は何だろうと思っていたので、次のようなことができます:

またはレイアウトはデフォルトでどのように見えますか?

ありがとう