問題タブ [url-for]

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

ruby-on-rails - url_for メソッドの違いは何ですか?

これら2つの方法の違いは何だろうと思っています: ActionView::Helpers::UrlHelper.url_forActionController::UrlWriter.url_for?

0 投票する
5 に答える
19760 参照

ruby-on-rails - Rails: ActionMailer ビューで完全な URL を生成する

ActionMailer を使用してサインアップ確認メールを送信しています。電子メールには、ユーザーを確認するためにサイトに戻るリンクを含める必要がありますが、Rails に完全な URL (ドメインなどを含む) を生成させることはできません。

私は使用しています:

私からしてみれば

パート b:

開発モードでは、上記のリンクでホストの説明を指定しないと、Rails が不満を感じます。しかし、私は本番環境でこれを行いたくありません。解決策はありますか?

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

ruby-on-rails - Ruby on Rails:url_for:backはback_urlのNoMethodErrorにつながります

url_for(:back)を使用して、ユーザーのログイン時に前のページに戻るリダイレクトを作成しようとしています。

ユーザーが自分でログインページにアクセスするだけで、正常に機能しました。ただし、ユーザーの認証が必要なページにアクセスしたためにユーザーがログインページにリダイレクトされると、リダイレクトによって、ユーザーが不十分な権限でアクセスを試みる前に、ユーザーがページに戻されます。

ログインコントローラのアクションを変更して、リダイレクトを適切に処理しようとしています。私の計画では、強制リダイレクトが発生したときに使用されるクエリ文字列パラメータ「redirect」を使用する予定です。コントローラでは、そのパラメータが存在する場合、そのURLが使用されます。それ以外の場合は、url_for(:back)が使用されます。それが機能しない場合(HTTP_REFERERがないため)、ユーザーはサイトのホームページにリダイレクトされます。

このロジックを実装することになっているコードスニペットは次のとおりです。

私が得るエラーは次のとおりです。

以前に動作させていたことを覚えておいてください。url_for(:back)は、このロジックを追加する前に正しく動作する方法を知っていました。

アイデアをよろしくお願いします!

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

ruby-on-rails - クラスProfilePresenter<ActionView:: Base | url_forは機能しません。なぜ?

url_forは機能しません。なぜ?

このような新しいインスタンスを作成します

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

ruby-on-rails - url_forがこれを私が思うようにレンダリングしないのはなぜですか?

私は私のコントローラーにこれを持っています:

そして私の見解では:

URLは私が期待するものではありません。

それ以外の

ただし、これは手動で行っただけで、正しいURLを取得します。

ここで何が欠けていますか?

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

ruby-on-rails - Rails3: サブドメインのサポートのために url_for を書き直し、そのような url_for を使用するようにアクション メーラーを拡張する方法

サブドメイン RailsCastからコードを取得します

url_forコントローラーのビューで変更を使用しても問題ありません。しかし、私は ActionMailer に問題があります。

私は以下を使用しようとしました:

しかし、ActionMailer のビューは、ActionDispatch::Routing::RouteSet の古い変更されていない url_for を引き続き使用します。

新しい url_for を追加するベスト プラクティスは何ですか

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

ruby-on-rails - 現在の記録に基づいて既知のアクションの Rails パスを作成する

テンプレートの一部として、application_controller で作成される自動リンクをいくつか示します。これらのリンクのいくつかは、表示ページから対応する編集ページへの直接のナビゲーションを提供します。

私の現在のコードには以下が含まれます:

これは、routes.rb ファイルに子リソースが定義されていることを除けば、うまく機能します。

この場合、次の場所に移動する代わりに:

にナビゲートします

これは有効なルートではありません。

これを達成する方法についてのアイデアは大歓迎です。可能な限り特別なケースを避けたいと思っています。

0 投票する
4 に答える
5204 参照

ruby-on-rails - Rails url_for と名前空間モデル

Rails では、モジュール内のモデルに名前を付けてから正しい動作を取得することは可能url_forですか?

たとえば、ここでurl_forは期待どおりに動作します。

Userモデルをモジュールに入れた後url_for、未定義のメソッドについて不平を言うm_user_path

url_forモジュールを無視して代わりにM::User返すことは可能ですか?user_pathurl_for(@user)m_user_path

アップデート

それで、ほぼ5年後、esadのおかげで解決策がここにあります. これは Rails 4.2 でテスト済みです。

注: を使用してモデル、ビュー、およびコントローラーを生成する場合、ビューとbin/rails g scaffold m/userコントローラーにも名前空間が付けられます。app/views/m/usersに移動する必要がapp/views/usersありapp/controllers/m/users_controller.rbますapp/controllers/users_controller.rbMまた、モデル以外のすべてのモジュールへの参照を削除する必要がありますM::User

最後に、ここでの目標は名前空間モデルであり、ビューとコントローラーではありません。esads ソリューションでは、モジュールM(を含むUser) はルートに表示されないように明示的に指示されます。したがって、事実上、Mは取り除かれ、User残るだけになります。

ユーザーモデルは に常駐できapp/views/models/m/user.rb、ユーザーコントローラーは にapp/views/controllers/users_controller.rbあり、ビューは にありますapp/views/users

0 投票する
4 に答える
24066 参照

ruby-on-rails - url_for? でパラメーターをクエリしますか?

動作し、生成してい/comments/123/editます。ここで、クエリ パラメータを追加する必要があります。

それは

やってみurl_for([:edit, @post], :qp => "asdf")たけどダメ。

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

ruby-on-rails-3 - Rails url_for Gravatar ルーティング エラー

この関数は application_help.rb で定義されています。

ビューで使用されます:

場合によっては、その使用によりルーティング エラーが発生します。

エラーが発生したときに有効な電子メールが提供されています。

url_for() をこのロジックに置き換えると、期待どおりに動作します。

** 編集 ** routes.rb ファイルから次の行を削除しました。

「レガシーワイルドコントローラールート」なしで url_for を機能させる方法はありますか?