問題タブ [nested-routes]

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

ruby-on-rails-3 - Ruby on Rails チュートリアル、第 11 章、演習 7 - rspec テストが壊れる

Rails に関する Michael Hartl の優れたチュートリアルに取り組んでいますが、第 11 章の演習 7 で問題が発生しています。

この演習は次のとおりです。

/users/1/microposts がユーザー 1 のすべてのマイクロポストを表示するように、ネストされたルートを追加します (マイクロポスト コントローラーのインデックス アクションと対応するビューも追加する必要があります)。

routes.rbファイルを次のように変更することで、これを成功させました。

ブラウザーから /users/1/microposts を正常に呼び出すことができます。ただし、microposts_controller_spec.rb のほとんどのテストは壊れています。自動テストを実行すると、「ルートが一致しません」というエラーが表示されます。たとえば、最初のテストは次のようになります。

次のエラーが発生するようになりました。

1) MicropostsController アクセス制御は「作成」へのアクセスを拒否する必要があります 失敗/エラー: post :create 一致するルートがありません {:controller=>"microposts", :action=>"create"}

チェックしたらrake routes

、次のエントリを見つけました。

これは、ルートが存在することを示唆しています。

チュートリアルを完了しているときに、他の誰かがこの問題に遭遇しましたか? ネストされたルートを導入したら、spec ファイルに変更を加える必要がありますか? Rspec はネストされたルートで動作しますか?

ありがとう

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

ruby-on-rails - Rails の二重のネストされたルート、分割

私はこれらのルートを持っています:

これは、URL を二重にネストする必要がないようにするためだけです。URL を最大 2 つのオブジェクトの深さに保ちたいと考えています。

問題は、イベントの場合、 /sub_categories/:sub_category_id を path_prefix として要求したいのですが

次のようなルートを教えてくれます

私が持ちたいのは

ユーザーが*sub_category*にアクセスしたいときはいつでも、*category_id*を提供する必要があるURLが必要ですが、ユーザーがイベントを見たい場合は、sub_category_idを提供する必要があります。

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

asp.net - .net mvc ルーティングのヘルプ

Rails のネストされたリソースに似たものを見つけることができませんでした。次のようなルートを定義できるようにしたい

これは単純ActivitiesControllerに , Index, とContributor_Id = 3

この特定のルートを手動で定義できることはわかっていますが (方法はわかりません)、実際にここで探しているのは、この種のシナリオに対する柔軟なソリューションを得るための推奨事項です。

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

ruby-on-rails - Rails 3 link_to ルート (編集) ネストされたリソース

これが他の場所で尋ねられた場合は申し訳ありませんが、私はこれを理解できません。セクション、トピック、返信があるフォーラムがあります。番組のトピック ビューから返信を編集および削除しようとしています。これは構造です:

そこで、rake routes を実行して、編集の返信をリンクしている場所を確認します。その edit_section_topic_reply が表示され、link_to に _path を追加します。今、これは私が理解できないものです。どのパラメータを渡していますか? そうではありませんか:

ActionController::RoutingErrorTopics#showこれを行うと入ります。

ID を渡していないようですが、前のネスト、私の新しいトピックは正常に動作します

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

ruby-on-rails-3 - 親リソースへのアクセスを実際に許可せずにネストされたルートRails 3を使用する

Rails 3 を使用しており、EquipmentGroup と Reservation の 2 つのモデルがあります。次のような URL でアクセスできるように、予約を機器グループのネストされたリソースにしたいと考えています。

ただし、機器グループのルートを作成したくありません。次の方法でこれを達成できますが、ハックのようです:

これを行うより良い方法はありますか?ドキュメントで簡単に答えを見つけることができないようです。

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

ruby-on-rails - Rails 3 /ネストされたルート:ユーザーショーページのマイクロポストのコレクションの正しいURLにリダイレクトする際の問題

正しいURLを表示しないネストされたルートに問題があります。

以下のコードを使用しますが、次のようにレンダリングされます。

それ以外の:

ユーザーの表示ページに表示されるすべてのマイクロポストに対して。

アソシエーション

ルート

Microposts_controller

microposts / _micropost.html.erb

user / show.html.erb

どこが間違っているのかわかりません。どうもありがとうございました!

編集

ルート:

0 投票する
0 に答える
290 参照

ruby-on-rails-3 - Rails 3 でネストされたルートを持つフォームを使用する際の問題

私の記事には多くの人がいるデータベース構造があります(結合を介して、しかしそれはうまく機能しています)

私が実現したいのは、人々が記事を作成すると同時に新しい人を作成できることです

つまり、パスはarticle/new/people/newの形式である必要があります

実際、ネストされたルートを使用せずに、このアプローチを使用してこれを管理しました

article.rb (モデル)

attr_accessor :new_person

article_controller.rb

フォーム.erb

これはある程度は問題なく機能しますが、現在、フォームは他のフィールドでより複雑になっています。ネストされたルートを利用するためにリファクタリングできると考えました。

さらに、コントローラーの作成に多くのロジックを追加しています。さらに、これらのアクションをJavaScriptにすることを検討する場合があります。その場合、コントローラーによって押された特定のボタンを判断するのはより複雑です。

これらの理由から、ネストされたルート アプローチがより自然に適合する可能性があると考えました。

既存の記事の場合、問題なく/articles/1/people/newなどで問題なく動作します。

入れ子のフォームは、とりわけhtml検証の理由でノーノーであることを知っているので、form_forとfields_forのさまざまな組み合わせを試して、次の目標を達成しました。

記事/新しいページで

メインフォームを article/new に送信 new_person フィールドを含む「サブ」フォームを article/new/people/new に送信

そして、UJSによるこれへの変更を可能な限り無痛にする

私が得たと思う最も暖かいのは、このエラーでした

問題は、その時点で人を関連付ける article_id がないことだと推測しています。

しかし、実際には、その人をデータベースに追加して、記事全体が保存されるときに保存される記事へのリレーションシップを作成することに本当に興味があるだけです。

長い投稿で申し訳ありませんが、私の質問で包括的になりたいと思っていました。

私の目的により適した代替アプローチを含むアドバイスをいただければ幸いです。ネストされたフォームとネストされたルートに関連するレールキャストを見て、オンラインで見つけられるものをすべて読みましたが、/model/new/submodel/new フォームの問題の解決策は見つかりませんでした。

どうもありがとう。

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

ruby-on-rails-3 - ネストされたリソースを作成するときの Respond_with での Rails ルーティング エラー

私が作成している単純なRails 3アプリで次の問題が発生しています。それは私をひどく駆り立てています。

私のモデル:

私のroutes.rb:

私のrake routes出力:

私の vehicle_pictures_controller.rb:

新しい車両の写真を投稿すると、create メソッドが期待どおりに呼び出されますが、次のエラーが発生します。

を変更すると、動作respond_withrespond_with(@picture, :location => vehicle_picture_url(@vehicle.id, @picture.id))ます。

しかし、私が理解していることから、これを行う必要はありません。私は何を間違っていますか?

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

ruby-on-rails - ネストされたルートでのエラー レンダリング

検証に失敗したユーザー メッセージングがある場合、きれいな URL を維持しようとしています。

次のようなルート ファイルがあります。

したがって、new_user_message_path(@user)は次を返します。

メッセージの new.erb ビューは正しいコードを生成します。

検証が失敗すると、フォーム エラーが表示されますが、間違ったアクションがレンダリングされます。

したがって、ユーザーが 2 回目にフォームを送信すると、「create」メソッドはus​​er_idを見つけることができません。

これが私のコントローラーメソッドです:

そして私のフォームビュー:

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

ruby-on-rails - 任意のモデルのインスタンスに対して機能するコントローラー関数を定義する方法

Rails アプリのバージョニングの実装 モデルのすべてのバージョンを表示するビューに、元に戻すなどの追加機能が必要paper_trailです。バージョニングには gem を使用します。

すべてのモデルのようなコントローラー関数versionsとビューを作成することでそれを実行できることはわかっていますが、すべてのモデルに対して一度に実行したいと考えています。model.versions属性は常に同じように構造化されているため、これは可能なはずです。

理想的には、URL は次のようになります/pages/testpage/versionstestpage、 はページ ID です。

これは、レールのネストされたルートの概念に似ているようです。

ただし、ネストされたルートの問題は次のとおりです。

  • モデルごとに追加の構成が必要
  • testpageインスタンスであるモデルを知らずにオブジェクトにアクセスすることはできません。また、バージョン コントローラーに提供されるのは params ハッシュだけであるため、モデルを特定する方法を見つけることもできませんでした。

私は、最初のアイデアに従わない可能性のある代替ソリューションに対して完全にオープンです。