問題タブ [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.
zend-framework - zend アクションコントローラーの単体テストを行うにはどうすればよいですか?
PHP と zend フレームワークを使用して、優れたソフトウェアを迅速に構築する必要があります。私はこれを TDD の方法で進めようとしています。なぜなら、私よりも経験豊富な人々が、コードを管理しやすくしながら迅速にビルドするための最良の方法であると私に言ったからです。
それで、私はphpunitに関する本を手に入れ、うまくいきました.実際、最初の面倒の後、スピードアップし始め、コードはまだいいです. オブジェクトを個別にテストする方法が好きです。
ただし、zend アクション コントローラーのテストには大きな問題が 1 つあります。zend_test パッケージは、それをテストする方法を提供します。しかし、それはアプリケーション全体を一度にテストしているようです。リポジトリをうまくスタブまたはモックしたり、他の依存関係を注入したりすることはできないようです。そのため、プロジェクトの残りの部分でできるほど広範囲にテストすることができませんでした。
私はこの問題を解決するために探してきました。しかし、ネット上で見つけたのは、それを行う zend_test の方法だけでした。
これについてあなたの意見を知りたいです。多分私は物事をやり過ぎようとしているだけなのかもしれませんし、あるいは zend アクション コントローラの単体テストを開発するためのより良い方法があるのかもしれません。
ruby-on-rails-3.1 - Jruy/Rails 3 の NameError 未初期化定数
プロジェクトを Rails 2.6 から Rails 3.1 および Jruby 1.6.4 にアップグレードしています。Jeremy による Rails Handbook に従いました。
現在、サーバーの起動中にいくつかのエラーが発生しています。
エラーログ
ruby-on-rails - force_sslがリダイレクトでパラメータを破棄しないようにするにはどうすればよいですか?
私は次のルートを持っています:
たとえば、/widgets/1/orders/new
注文がOrderControllerに送信され、OrderControllerparams[:widget_id]
は、購入されているウィジェットを知るためにアクセスできます。
問題はこれです:私force_ssl
はOrderControllerで使用します。これにより、次のリクエストが発生します。
リダイレクトされる(302):
言い換えると、force_sslはその役割を果たしています(URLのhttpsプロトコルバージョンにリダイレクトしています)が、プロセス内のルートの動的セグメントによって指定されたパラメーターを破棄しています。どうすればこれが発生するのを防ぐことができますか(望ましい)、または最も不快な方法で回避できますか?
これはHerokuでホストされているため、たとえばApacheリダイレクトは機能しないことに注意してください。
ruby-on-rails - ActionController::RoutingError: 一致するルートがありません [POST]
12 行目のエラーが表示されます。「ログイン」ボタンまたは /logins/new パスに問題がありますか? 2 番目のテストはパスしますが、パスは正しいはずですか? 私は何を間違っていますか?
ありがとう!
routing - アクション コントローラ: nil:NilClass に対して例外プライベート メソッド「sub」が呼び出されました
私は今、自分のアプリに最低限のものを持っています。このエラーが発生する理由はわかりませんが、ログファイルを見ると、次のように表示されます:-
ActionController::RoutingError (nil:NilClass に対して呼び出されるプライベート メソッド「sub」): app/controllers/application_controller.rb:1 app/controllers/pages_controller.rb:1
アプリケーションコントローラーには何も含まれておらず (protect_from_forgery のみ)、ページコントローラーには現時点で空のアクションがほとんどありません。
ここで何がうまくいかないのかについての指針はありますか?
アップデート
プロジェクトを開始したばかりだったので、ロールバックして最初からやり直すことができました。ただし、この問題が発生した理由はまだわかりません ありがとう、
ruby-on-rails - Railsの部分ビューのレンダリング(Rails APIの読み取りに問題があります)
create
コントローラーアクションにフォームを送信するjQueryの投稿があります。これはうまく機能します。save
成功した場合、コールバックがこのフォームを挿入するように、create
アクションが別のフォームを返すようにします。success
これは可能ですか?
これが私のコードです:
何らかの理由で、「shows/new」テンプレートはレンダリングされません。レイアウトなしで現在のコントローラーのnew
テンプレートをレンダリングし続けます。ここで何が欠けていますか?
余談ですが、私はapi.rubyonrails.orgを見て、render
メソッドを調べようとしました。私はそれがとしてリストされているのを見つけましrender(context,options)
たが、私の人生の間、有効なオプションが何であるかを知ることができません。これは、多くのメソッドに共通のパターンのようです。どうすればわかりますか?それは確かに私の選択肢が何であるかを理解するのに役立ち、おそらくさまざまなことを試してみることができます。
ありがとう、ダニー。
追加:render "shows/new", :layout => false
動作しているコントローラーアクションで使用しました。ショーのnew.html.erbで、宣言し<%= render "/shows/form" %>
ました。残念ながら、現在500エラーが発生しています。私はこれをdevelopment.logで見つけました:
何が原因なのか完全にはわかりません...
ruby-on-rails - ActionController 内の ActionMailer の NameError
私はRails 3.0を使用しています.APIの手順にほぼ従い、次のようにしてメーラーを定義しました
私のコントローラー内で、私は呼び出しますNotifier.mytemplate(...)
ページに移動すると、次のエラーが表示されます。
何かが正しく初期化されていないようで、Notifier が既に定義されていることを認識していません。app/mailers/notifier.rb
ruby-on-rails - ActiveRecordモデル内でRails 2.3.xテンプレートをレンダリングする際の未定義のメソッド「url_for」
これが「容認できる」プラクティスではないことはわかっていますが、バックグラウンド プロセスとして、レンダリングされた Rails パーシャルをデータベースにキャッシュして、JSONP 経由で高速に出力できるようにしています。このトピックに関する多くのリソースを見つけ、ActiveRecord モデル内で Rails 2.3.x パーシャルを正常に出力しましたが、Rails パーシャル内で動的 URL を使用すると失敗します。
これで成功した出力(動的URLを除く)が得られます...
ActionController::UrlWriter
モジュールを含めようとActionView::Helpers::UrlHelper
しましたが、うまくいきませんでした。ActionController::Base.new.url_for()
パーシャルがパーシャルに動的ルートを書き込むためにアクセスできるようにするためのインスタンス化/包含順序を見つけることができないようです。
RoR: undefined method `url_for' for nil:NilClassと同様のプロセスを試みましたが、うまくいきませんでした
render_anywhere が Rails 3.x アプリのソリューションであることは知っていますが、Rails 2.3.11 で作業しています。
考え?
ruby-on-rails - before_filter :except はサブクラス コントローラー全体で機能しますか?
ApplicationController
以下のように、のフィルターで別のコントローラーからいくつかのメソッドを宣言したいと思います。
のApplicationContoller
before_filter :authorize, :except => [:index, :show, :different_controller_method]
は:different_controller_method
で定義されていUserController
ます。これはできますか?
ruby-on-rails - NewRelic で ActionController::Metal を監視するにはどうすればよいですか?
一部のコントローラーが通常のレールコントローラーであり、一部がActionController::Metalを使用して実装されているRails 3アプリケーションがあります。デフォルトでは、NewRelic は通常の Rails コントローラーを監視しますが、NewRelic のコントローラーは監視しません。
NewRelic は Rack アプリケーションをサポートしているようですが、指定されたコード例は、監視したい特定のミドルウェアがある場合、または定義している MetalApp がある場合のいずれかです。どちらも ActionController::Metal では動作しないようです。
では、NewRelic モニタリングをメタル コントローラーに追加するにはどうすればよいでしょうか?