問題タブ [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.
ruby-on-rails - コントローラーがサブクラス化されると、Rails before_filter が 2 回呼び出されるのはなぜですか?
私は Rails 2.3.5 を使用していますが、次の問題があります。
問題は、ChildController で、フィルターの前の :foo が 2 回呼び出されることです。
この問題を回避する方法をいくつか試しました。子にアクションを含めない:index
と、そのアクションに対して呼び出されることはありません。
私が見つけた解決策は機能しますが、非常に醜いと思います
この問題を解決するより良い方法はありますか?
ruby - Rails 3 の ActionController::Metal に Responder を含めるにはどうすればよいですか?
非常に具体的で限られた目的を持つ Rails 3 コントローラーを使用しています。必要なのは、respond_to :json だけです。
このスクリーンキャストは、コントローラーが ActionController::Metal から継承できることを示しており、高速化に必要な機能を含めるだけです: http://rubyonrails.org/screencasts/rails3/action-controller
コントローラーが次のようになっている場合:
エラーが発生します:
Responder、ActionController::Responder、ActionController::Metal::Responder を含めてみましたが、どれも機能しません。このレスポンダー機能を取得するには、何を含めますか?
ruby-on-rails - モデルのクラスメソッドからUrlWriterurl/ pathジェネレーターにアクセスするにはどうすればよいですか?
モデルのクラスメソッドからURLを生成したい。私は以前、インスタンスメソッドからこれを単純に含めることで実行ActionController::UrlWriter
しました。これをインスタンス定義スコープとクラス定義スコープに含めてみましたが、役に立ちませんでした。
ruby-on-rails - RailsでのActionControllerのアクションの設定
[スクリプト/足場ユーザーの生成]コマンドを発行してファイルを生成しました。すべてのCRUDページがうまく機能するので、それは良いことです。今、私はより多くのページを作成しようとしています。次のように、user_controller.rbファイルにメソッドを作成します。
defログイン
#blahblah
終わり
次に、ビューのapp / views / users/login.html.erbを作成しました。ブラウザ[ http:// localhost:3000 / users / login]からアクセスしようとすると、次のエラーが発生します。
ActiveRecord :: RecordNotFound(ID = loginのユーザーが見つかりませんでした):app / controllers / users_controller.rb:16:in `show '
アクションショーを使用していると解釈していますが、ログインをアクションとして認識しません。このアクションを機能させるための構成が不足していますか?私はRailsにまったく慣れていないので、些細なことを見逃しているかもしれません。ありがとう!
UPDATE [script / generate controller User]を使用してみてから、コントローラーとそれに対応するビューでアクションメソッドを作成しました。予想通りに動作しているようです。2つの違いと、スクリプト/生成スキャフォールドを使用できない場合に追加のアクションメソッドが作成される原因は何ですか?
ruby-on-rails - Railsですべてのモデル、コントローラー、アクション、およびメソッド名を取得する方法
実行時には、以下のように controller_name および action_name メソッドによって現在のコントローラーと現在のアクション名を取得できます。
可能であれば、残りのすべてのコントローラーとアクション名とモデルも取得したい..
アプリケーション コントローラー内のすべてのコントローラー名とアクション名を取得するために使用できる任意の Rails メソッド。
jframe - jbutton で nullexception を返す actionlistener
メインのjframeメニューにリストされたボタン用にアクションリスナーを設定しましたが、それらは正常に機能し、必要に応じて他のjframeを表示します。問題は、人が表示されたjframeのボタンをクリックすると、そのサブメニューjframeでjbuttonがクリックされた後にnullexceptionが発生することです。
コード例:
これで、内側の jbutton に別のアクションリスナーを設定する必要があることはほぼ確実ですが、その方法がわかりません。
ruby-on-rails - 例外のafter_filter
アクションで例外が発生した場合でも実行されるafter_filterに似たものはありますか?
私は外部ロガーを使用しています(Herokuを使用しているため)。応答ヘッダーはフィルター処理され、after_filterに記録されます。例外が発生した場合、フィルターは実行されず、応答ヘッダーデータのログがありません。
log_errorまたはrescue_action_in_publicにフックしようとすると、応答ヘッダーが完成しません(実際のレンダリングはこれらの後に呼び出されるため)。
after_filterと同等の時間に呼び出されるが、例外がスローされるかどうかに関係なく常に実行される、オーバーライドできる別の関数はありますか?
ありがとう!
html - コントローラー アクションでレンダリングするビューを決定する方法
わかりました、これをどのように達成するかについていくつかの異なるアイデアがありますが、誰かがより良い解決策を持っている場合に備えてここで質問すると思いました.
login ビューと widget_login ビューを持つ SessionsController があります。SessionsController の新しいアクションでレンダリングするビューを決定する方法を考えていました。
現在、すべてが標準のログイン ビューを使用しています。「サインイン」リンクがあるウィジェット(reviewscontroller)からリクエストが送信された場合、代わりにwidget_loginビューをレンダリングできることを望んでいました。可能であれば、リファラーを使用してこれを判断したくありません。
ありがとう
ruby-on-rails - Rails 3 の SqlSessionStore
既存のアプリケーションを Rails 2 から Rails 3 に移行しています。古い環境ファイルでは、SqlSessionStore は次のように設定されていました。
Rails 3 でアプリケーションを起動しようとすると、次のように表示されます。
この概念を Rails 3 に変換する簡単な方法はありますか?それとも、セッションの処理方法を再検討する必要がありますか?
ruby-on-rails - 同じコントローラーアクションに対して複数のレイアウト/ビューを処理する最もRailsらしい方法は何ですか?
シナリオは次のとおりです。
私のサイトには何人かのユーザーがいます。ユーザーにはロールがあり、関連するロールはadmin
とnormal
です。モデルもあります。 と呼びましょうSomeModel
。
管理レイアウトを使用するサイトのバックエンドを作成しました。すべての管理者は、コンテンツを編集するための完全なアクセス権を持っています。
この関係で問題が発生します: User -> owns -> SomeModel。これは、管理者以外 のユーザーが のインスタンスを所有SomeModel
でき、このインスタンスのデータを編集できる必要があることを意味します。
のコントローラーにSomeModel
は、管理者と通常のユーザーの両方に対応する編集アクションがあります。
ただし、通常のユーザーに管理レイアウトを表示させたくありません。現在、これを行う方法は次のとおりです。
ユーザーが管理者でない場合、デフォルトで標準レイアウトになります。私はこれをすべてのアクションSomeModel
に取り入れていますが、Rails のやり方とは思えません。
より良い方法はありますか?