問題タブ [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コントローラーのテスト-検証エラーはHTTPエラー応答を発生させません
不正なデータを使用してテスト対象のコントローラーに「post」リクエストを送信するActionController派生テストがあります。コントローラは、新しいオブジェクトを作成して保存しようとします。モデルには、保存時にトリガーされる検証メソッドがあり、テストによって送信された誤ったデータを検出する検証エラーを生成します。
ここまでは順調ですね。ここで、コントローラーはassert_response:failureを使用して、HTTP応答ステータスが失敗であることを確認します。ただし、テストはこのステップで失敗し、次のようになります。
予想される応答は<:failure>でしたが、<200>でした
@ obj.errorsには検証エラーが正しく入力されていますが、どういうわけかHTTP応答は常に200です。
手がかりはありますか?
ruby-on-rails - ビューでの「content_for」の繰り返しを避ける
コントローラーごとに異なるサブメニューがレイアウトに配置されていますが、各コントローラーのメソッドビュー間では異なります。私が現在行っていることは次のとおりです。
メソッドのすべてのビューで
私のアプリケーションのレイアウトには、これが含まれています
ただし、これはビューごとに行うため、繰り返しのように感じます。コントローラーごとにこれを行う方法はありますか?
ruby-on-rails - RubyonRailsのネストされたフォームモデル
form_for helperにネストされたレールを使用しようとしていますが、次のエラーが発生します。
BlogPage(#49859550)が必要です、配列を取得しました(#31117360)
これが私のモデルオブジェクトです:
これが私が生成したフォームです(不要なHTMLを省略しました):
コントローラに送信されるパラメータは次のとおりです。
{"commit" => "Save"、 "blog" => {"blog_pages" => {"content" => "これは新しいブログエントリのコンテンツです。"}、 "title"=>"これは新しいブログですentry。"、" complete "=>" 1 "}、" authenticity_token "=>" T1Pr1g9e2AjEMyjtMjLi / ocrDLXzlw6meWoLW5LvFzc = "}
実行されるcreateアクションを持つBlogsControllerは次のとおりです。
誰かがこれで私を助けることができるならば、私はそれを大いに感謝します。私はまだルビーとレールフレームワークにかなり慣れておらず、グーグルで問題を自分で解決することはできませんでした。
ありがとう。
ruby-on-rails - RailsのActionControllerをオーバーライドして、特定のメソッドを共通化するにはどうすればよいですか?
複数のコントローラーで使用できる認証コードがあります。そこで、認証コードをスーパークラスに入れて、他のすべてのコントローラーにこのスーパークラスを拡張させることを考えました。次に、ActionControllerクラス自体に追加できることを知りました。どうすればそれができますか?事前定義されたクラスを変更する方法はありますか?
ruby-on-rails - Rails ActionController はすべてのアクションに対して同じコードを実行します
Rails の専門家の皆さん、Web アプリケーションのすべてのアクションに対して同じコードをどこでどのように実行するのか疑問に思っていました。記事を教えていただけるか、短いコード スニペットを提供していただければ幸いです。
助けていただける方、よろしくお願いします。
ruby-on-rails - アクション キャッシングが呼び出されているのがわかっても、正しく期限切れにならない
いくつかのアクション キャッシュを期限切れにするはずのスイーパーがあります。デバッガーは expire_action の呼び出しの直前に停止しますが、実際にはアクションが期限切れになるわけではありません。何が起こっているのでしょうか?
関連するスイーパーとコントローラーは次のとおりです。
#company_sweeper.rb (「モデル」ディレクトリ内)
#reports_controller.rb
有効期限が切れていないことを私が知る方法は、完全なレポートが古いデータを返し、ほぼ瞬時に応答することです。変ですよね?
ruby-on-rails - コントローラでレールレンダリングがどのように機能しますか? レイアウトを使用しないのはなぜですか?
アクションでrenderを書いてみたのですが、レイアウトの挙動が違うのですがなぜですか?
部分的にレンダリングしてコントローラーのレイアウトに従いたいと思います。
ruby-on-rails - 特に ActionController でのクラス変数とモジュールのインクルード
別のモジュールで初期化され、コントローラーに含まれてコントローラークラスレベルで変更され、コントローラーインスタンスレベルでアクセスできる、ある種の単一のリストが必要です。クラス変数はここで機能すると思っていましたが、奇妙なことが起こっています。終了クラス内で初期化されていないようです。
すなわち:
モジュールには、いくつかのデフォルト機能を含む多くのコントローラーがあります。
、 例えば。これは実際のコードではありませんが、現時点で最も多くのやり取りがあります。
これを他の機能(リストのソート可能なインターフェース)で拡張したいと思います[クラスごとにソート順リスト機能を交換できるようにしたいことに注意してください]:
アイデアは、次のように、クラスごとに可能なすべての並べ替えのセットを交換できるようにすることです。
また、エラーが発生することを除いて、以下のようにビューに素敵なリンクを作成することもできます。
class_var は悪い呼び出しだと思いますが、他に何を使用できるか考えられません。(クラスインスタンス変数?)
ruby-on-rails - Railsのcaches_pageをカピストラーノのデプロイで生き残るにはどうすればよいですか?
caches_page で作成されたキャッシュが Capistrano デプロイ後も存続するように Rails を構成することは可能ですか? つまり、パブリック ディレクトリではなく共有ディレクトリにキャッシュを保存するように構成できますか?
ruby-on-rails - reply_to |format|に相当するRails ストレートレンダリングで
私はActiveResourceを頻繁に使用しているため、サービスモデルはXMLのみを使用しています。したがって、respond_toブロックは必要ありません。文字通り、render :xml => @model
ただし、これを使用して404ヘッダーをレンダリングする方法がわかりません。私はrespond_toに頼らなければなりませんでしたが、これはいくつかの不要なメソッド呼び出しを追加すると思います。これが私が使用しているものです:
render :xml => head :not_found
しかし、私はただうまくいかないようなものが欲しいだけです。誰かが私に正しい構文を教えてもらえますか?