問題タブ [actioncontroller]

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

ruby-on-rails - Rails 3ですでに設定されているbefore_filtersを見つける

コントローラー構成用の DSL があります。基礎となる機能は before_filters に依存しています。before_filter を複数回設定しないようにするには、Rails 3 コントローラーで before_filter が既に設定されているかどうかを確認する必要があります。before_filter はクラス変数 (継承、クラスのリロード) とは異なる働きをするため、クラス変数を設定してチェックすることはできません。

AbstractController コールバックの高度に抽象化された新しいコードを掘り下げても、これが可能かどうかの手がかりはまったく得られません。

コントローラー内のすべての DSL 呼び出しに対して、本当に skip_filter を呼び出す必要がありますか?

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

ruby-on-rails - Rails2からRails3への移行の問題(nil.any?)

アプリをRails2.3.8からRails3にアップグレードしています。

すべての基本的な作業(構成、ルート、新しいAR API、AuthlogicをDeviseに置き換える)を完了し、ほとんど静的なページを正常に表示した後、サイトの残りの部分でエラーが発生します。

SomeModelこのエラーは、初めて参照するときに常に表示されます。例:私のnews#index

完全なスタックトレースは以下のとおりです。トレースは、私のモデルapp/models/news_story.rbがロードされていないことを示しているようです。

私は一日中これに苦労してきました。誰かが何が起こっているのか考えていますか?

コントローラのアクション:

追加情報:

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

ruby-on-rails - 初期化時に default_url_options を設定

Rails アプリのいずれかの環境でホストを強制する必要があります。

含めることでオーバーライドを機能させることができます

app/controllers/application.rb 内

しかし、できれば config/environments/... ファイルで、初期化時にこれを設定する方法はありますか? 条件付き環境ロジックをコントローラーから除外したいと思います。

でもやってみると

あるいは

config.after_initialize { ... } でラップしても、「未定義のメソッド」が表示されます

何かご意見は?

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

ruby-on-rails - Rails 3-テンプレートとJSジェネレーターを含むジャガーノートの修正

Rails 3 でオリジナルのJuggernaut ( Juggernaut 2@templateではない) を使用しています。この他の投稿によると@template、Rails 3 のコントローラーでは提供されていません。

Rails 3でスムーズに実行できるように、次のコードを修正するにはどうすればよいですか? (元のスクリプトへのリンクは次のとおりです。 を探してくださいrender_with_juggernaut。)

私は2つのことのうちの1つができると考えています:

  • @template をどうにかして手に入れる
  • JavaScriptGenerator を使用せずに JS のスニペットを生成する (@template が必要)

これらまたは他の方法のいずれかを行う方法について何か提案はありますか?

ありがとう!

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

ruby-on-rails - Rails ActionController:request.remote_ipとrequest.remote_addrの違い

ActionControllerソースでは、ローカルリクエストは次のように定義されています。

私のアプリケーションでは、リクエストが特定のIP範囲からのものである場合、異なるロジックを使用したいと思います。request.remote_addrとの違いは何request.remote_ipですか?どちらを使用すればよいですか?

0 投票する
8 に答える
23890 参照

ruby-on-rails - Rails 3:現在の名前空間を取得しますか?

メソッド :layout_for_namespace を使用して、バックエンドが名前空間「admin」を使用しているため、フロントエンドかバックエンドかに応じてアプリのレイアウトを設定します。

自分がどの名前空間であるかを見つけるためのきれいな方法が見つかりませんでした。私が見つけた唯一の方法は、params[:controller] から文字列を解析することです。もちろん、それは簡単で、フェイルセーフでうまく機能しているようです。しかし、これを行うためのより良い、準備された方法があるかどうか疑問に思っています。誰か知っていますか?

現在、私は次の方法を使用しています。

前もって感謝します

アルネ

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

ruby-on-rails - Rails ActionController の Respond_with の操作とテスト

この質問の冗長性について事前にお詫び申し上げます。辛抱していただければ、実際には非常に単純であることがわかると思います...私のRailsドメインの知識が限られているため、説明するのが難しいだけです。

8 月 6 日付の ActionController コミットでこのコメントが与えられた場合:

使用する非常に基本的なコントローラーを変更しましたrespond_withparamsRailsの自動生成されたテストが更新および作成メソッドに空を渡そうとすると、2つの仕様が失敗することを除いて、すべてが正常に機能しているようです。この動作は単純な if save/else で修正できますが、この「新しい」機能を理解しようとしています。デフォルトの仕様は時代遅れの方法で書かれている可能性があると思います。

コミットコメントから: " Since the request is a POST, respond_with will check wether @people resource have errors or not. If it has errors, it will render the error object with unprocessable entity status (422)."

したがって、POST の下の最後のテスト/仕様 (以下) までスクロールすると、「処理不能なエンティティ ステータス (422)」をテストして合格し、すべてが桃色になるように書き直すことができますか?

私のコントローラー:

仕様のテスト:

これは clowns_controller_spec.rb の一部です:

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

ruby-on-rails - Rails 3 / コントローラ / フラッシュ ハッシュ

複数のメッセージをコントローラ内のフラッシュ ハッシュに渡して、それらを箇条書きリストなどでうまくまとめて表示できるようにしたいと考えています。これを行うために私が考案した方法は、Application Controller でヘルパー関数を作成することです。これは、配列を箇条書きリストにフォーマットし、私の場合は flash[:success] に渡します。これは明らかに Rails のやり方ではありません。なぜなら、箇条書きリストがエンコードされるからです。つまり、取得する代わりに:

  • メッセージ 1
  • メッセージ 2

私は得る:

<ul><li>メッセージ 1</li><li>メッセージ 2</li></ul>

出力を raw() する方法を見つけられると確信していますが、このようなものを機能させる簡単な方法はありませんか? おそらく、flash[] に渡すオプションがありますか? 他の何か?

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

ruby-on-rails - Rails 3:respond_withを使用してリソースを削除する適切な方法

を組み込んでコントローラーを乾かそうとしていrespond_withます。私がそうするとき、Railscastのいくつかの指示に従って、私は物事がほとんど機能するようになります。問題は、リソースを削除people_urlした後のリダイレクトにあります...これはリダイレクトする必要があります...代わりに特定のリソースをロードしようとします。

私が見つけたサンプルコードは次のようになります...しかし、削除したばかりのリソースを読み込もうとして失敗します:

その最後の行をに変更してrespond_with(@people)も機能しません(私はそれが機能することを望んでいましたが...)

多くのことを掘り下げて理解するために最善を尽くした後、私はこれで物事を機能させることができました(少なくともそれはそう見えるでしょう。仕様は合格です。アプリは機能します):

それで、これはこれを処理する正しい方法ですか?reply_withの背後にあるすべての「魔法」を使用すると、削除後に自分自身にリダイレクトできないことがわかりますか?また、これ(7つの基本的なRESTful CRUDメソッドの1つ)はかなり基本的で初歩的なものであるため、多くの例がたくさんあると思いました...しかし、機能しなかったコードを示唆するものを除いて、多くを見つけることができませんでした自分。

誰かがここで起こっているレールの「魔法」を理解するのを手伝ってくれることを願っています。そうすれば、これが道を進んで私に吹き飛ばされても驚かないでしょう。

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

ruby-on-rails-3 - Rails 3 - ActionController を拡張する

アプリにロジック キャプチャを実装しようとしています。質問と回答をDBに保存するために、単純なTextCaptchaを足場にしました。

現在、これはinitializers/text_captcha.rbにあります

これは「lib/text_captcha.rb」にあります:

したがって、コメントコントローラーでは、ビューで@captchaにアクセスできるようにこれを持っています

悪い点は、変更を加えるたびに webrick を再起動する必要があることです。これは間違った方法で行っているのでしょうか? 初期化子を取り除き、必要な場所で「text_captcha」を要求することができます...または、最初にやろうとしていた「models/text_capctha.rb」でこれを行う方法がありますが、理解できました。