問題タブ [applicationcontroller]
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: ApplicationController からリソース モデルにアクセスする
したがって、すべてのコントローラーからアクセスする必要がある ApplicationController に次のメソッドがあります。
このメソッドは、すべてのモデルが持つ共通の属性のみを変更します。私がテストしたところ、コントローラーはメソッドにかなりうまくアクセスできました。問題は、メソッドにアクセスするリソースのモデル名をどのように取得するかです。
resource
、を試しましたがresource_model
、resource[:model]
すべてエラーが返されます。undefined method 'resource' for #<SomeController:0xb64a1418>
ruby-on-rails - ネットワーク接続エラーをどこで救うか:モデルまたはコントローラーで?
モデルのインスタンスを作成する前に、外部のWebサイトにアクセスする必要があるモデルがあります。エラー回復のベストプラクティスと見なされるものは何ですか?モデルを作成していないので、モデルでクラスメソッドを使用していることに注意してください。
(コントローラーではなく)モデルのエラーを救済することは正しいと感じますが、エラーをコントローラーに伝えるための最良の方法は何ですか?次のコードの問題は、モデルがnilを返すため、コントローラーが失敗した内容をユーザーに提供できないことです。
これにどのようにアプローチしますか?
(追記:モデルコードでMyModel.new(:info => info)を呼び出して、それをコントローラーコードに返すことができます。これにより、モデルインスタンスにエラーを割り当てることができます[右?]が、そうではありません。それがパブリックAPIの一部であることを確認してください。それは機能しますか?もしそうなら、どのように記述しますか?)
ruby-on-rails - Rails: Application Controller で、ログインを強制し、ログイン以外のすべてのリクエストをリダイレクトします
サイトのどの部分にも進む前に、すべてのユーザーがログインする必要があるアプリケーション コントローラーの簡単なメソッドが必要です。認証にはDeviseを使用しています。
私は試した:
これにより全員が正常にリダイレクトされますが、問題は、新しいユーザー セッションを作成するために必要なポスト リクエストも妨げられることです。
私の質問は、ログイン ビューとログインのポスト リクエストを除くすべてのリクエストをブロックするにはどうすればよいでしょうか?
ruby-on-rails - Children::ApplicationController によって参照されるトップレベルの定数 ApplicationController
学校と子供の 2 つのアプリケーションをマージしています。学校のアプリケーションにネストされた子供のアプリケーションで、それぞれが正常に動作します。それぞれに独自のデータベースがあります。学校アプリのツリーの一部を次に示します。
app/controllers/application_controller.rb
app/controllers/user.rb
....
app/controllers/children/application_controller.rb
app/controllers/children/user.rb ....
これらの警告がありました:
トップレベル定数 Children::ApplicationController によって参照される ApplicationController
トップレベル定数 Children::User によって参照されるユーザー
app/controllers/children/application_controller.rb に
クラス Children::ApplicationController < ActionController::Base
があります app/controllers/application_controller.rb に
クラス クラス ApplicationController < ActionController::Baseがあります
ネストされた ApplicationController がロードされていません。名前空間が機能していませんか?
sql - Rails-ユーザーが私のページにアクセスしたときに初めてメソッドを実行する方法
データベースにたくさんのデータがあり、それらから統計を作成したいと思います。大量のデータ=テーブル内の数千行。毎日、毎週、毎月(毎月)の統計を取得したい...詳細な統計だけ。
問題は、これらのデータの取得に時間がかかることです(少なからず)。
だから、私はそれを取得するための最も速く、最も明確で、そして最も効果的な方法は何だろうと思います...
私の最初のアイデア-ユーザーが私のアプリにアクセスしたときに、ApplicationController
DB統計からフェッチするメソッドで、取得したオブジェクトをセッションの変数に保存してから、これらの変数をソースとして使用します。次に、アプリのどこかで統計を印刷する必要がある場合は、このロードされたデータを使用します。
問題は、これは良い考えですか?または、より良い方法がありますか?
ruby-on-rails-3 - モデルでApplicationControllerヘルパーメソッドを呼び出す方法は?RoR
みんな私は次のようにApplicationControllerのヘルパーメソッドを持っています
そして、私はそれを私のモデル(たとえばプロジェクト)で次のように呼びたいと思います:
ここで、未定義のメソッド `current_user'のようなエラーが発生します 。では、モデルでこのメソッドを呼び出す方法は?私を助けてください
ruby-on-rails - gem で ApplicationController を拡張するにはどうすればよいですか?
Rails 3.x の gem で ApplicationController を拡張する巧妙な方法を思いつきました。
私の宝石lib/my_namespace/my_controller.rb
には、次のものがありました。
ただし、Gem が読み込まれると、app/controllers/application_controller.rb
まだ読み込まれていないため、失敗します。
回避策として、gem で ApplicationController を次のlib/gem_namespace/application_controller.rb
ように定義しました。
そこで定義したとしても、拡張したアプリケーションのコントローラーとapp/controllers/application_controller.rb
拡張したコントローラーの両方が、で定義された ApplicationController を直接的または間接的に拡張するように、Rails 3 アプリケーションの で再定義されると想定しました。ApplicationController
MyNamespace::MyController
app/controllers/application_controller.rb
しかし、gem をロードした後、拡張するコントローラーが でApplicationController
定義されたメソッドにアクセスできないことに気付きましたapp/controllers/application_controller.rb
。また、ApplicationHelper
(app/helpers/application_helper.rb)
モジュールは他のヘルパー モジュールによって読み込まれなくなりました。
and to を定義し、クラスの名前にアクセスして、関連するモデルのクラスを決定し、そのメソッド内で保存して使用できるようにApplicationController
するために、gem のコントローラー内で拡張するにはどうすればよいですか?before_filter
after_filter
initialize
2012/10/22 更新:
これが私が思いついたものです:
でlib/your_gem_name/railtie.rb
:
とでlib/your_gem_name/controller.rb
:
ruby-on-rails - Rails: 同じフィルタを 2 回含めることの副作用
ApplicationController でフィルターを使用することに基づいて開発中の宝石があります。これは基本的にロギング用であり、モジュールの 1 つは次のように around フィルターを定義します。
たまたま例外ログを処理するのは周りのフィルターですが、私の質問はどのフィルターにも当てはまります。
だからこんな風に使われるはず
だから私が心配しているのは、誰かがそうするかどうかです:
私は二度実行したくありませんdo_a_bunch_of_logging_stuff
。だから最初に
1)do_a_bunch_of_logging_stuff
が 2 回含まれている場合、レールはフィルターを 2 回適用しますか?
2)ユーザーがこれを行うのを防ぐのは私の責任ですか?次のようなクラス変数を使用してこれを行うことができます。
この変数はスレッドセーフではないので、慎重に入れたいところです。しかし、簡単に壊れてしまうようなライブラリは書きたくありません。ありがとう。
ruby-on-rails - 初期化されていない定数 ApplicationController::Mailer
Rails アプリケーションを開発モードで実行すると、問題なく動作します。本番モードで実行すると、起動しません。代わりにそれは私に与えます: uninitialized constant ApplicationController::Mailer
. このアプリケーションは Rails 2 アプリケーションからアップグレードされたものです。不足している可能性のあるものや、動作しない理由はありますか?