問題タブ [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.
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 はネストされたルートで動作しますか?
ありがとう
ruby-on-rails - Rails の二重のネストされたルート、分割
私はこれらのルートを持っています:
これは、URL を二重にネストする必要がないようにするためだけです。URL を最大 2 つのオブジェクトの深さに保ちたいと考えています。
問題は、イベントの場合、 /sub_categories/:sub_category_id を path_prefix として要求したいのですが、
次のようなルートを教えてくれます
私が持ちたいのは
ユーザーが*sub_category*にアクセスしたいときはいつでも、*category_id*を提供する必要があるURLが必要ですが、ユーザーがイベントを見たい場合は、sub_category_idを提供する必要があります。
asp.net - .net mvc ルーティングのヘルプ
Rails のネストされたリソースに似たものを見つけることができませんでした。次のようなルートを定義できるようにしたい
これは単純ActivitiesController
に , Index
, とContributor_Id = 3
この特定のルートを手動で定義できることはわかっていますが (方法はわかりません)、実際にここで探しているのは、この種のシナリオに対する柔軟なソリューションを得るための推奨事項です。
ruby-on-rails - Rails 3 link_to ルート (編集) ネストされたリソース
これが他の場所で尋ねられた場合は申し訳ありませんが、私はこれを理解できません。セクション、トピック、返信があるフォーラムがあります。番組のトピック ビューから返信を編集および削除しようとしています。これは構造です:
そこで、rake routes を実行して、編集の返信をリンクしている場所を確認します。その edit_section_topic_reply が表示され、link_to に _path を追加します。今、これは私が理解できないものです。どのパラメータを渡していますか? そうではありませんか:
私ActionController::RoutingError
はTopics#show
これを行うと入ります。
ID を渡していないようですが、前のネスト、私の新しいトピックは正常に動作します
ruby-on-rails-3 - 親リソースへのアクセスを実際に許可せずにネストされたルートRails 3を使用する
Rails 3 を使用しており、EquipmentGroup と Reservation の 2 つのモデルがあります。次のような URL でアクセスできるように、予約を機器グループのネストされたリソースにしたいと考えています。
ただし、機器グループのルートを作成したくありません。次の方法でこれを達成できますが、ハックのようです:
これを行うより良い方法はありますか?ドキュメントで簡単に答えを見つけることができないようです。
ruby-on-rails - Rails 3 /ネストされたルート:ユーザーショーページのマイクロポストのコレクションの正しいURLにリダイレクトする際の問題
正しいURLを表示しないネストされたルートに問題があります。
以下のコードを使用しますが、次のようにレンダリングされます。
それ以外の:
ユーザーの表示ページに表示されるすべてのマイクロポストに対して。
アソシエーション
ルート
Microposts_controller
microposts / _micropost.html.erb
user / show.html.erb
どこが間違っているのかわかりません。どうもありがとうございました!
編集
ルート:
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 フォームの問題の解決策は見つかりませんでした。
どうもありがとう。
ruby-on-rails-3 - ネストされたリソースを作成するときの Respond_with での Rails ルーティング エラー
私が作成している単純なRails 3アプリで次の問題が発生しています。それは私をひどく駆り立てています。
私のモデル:
私のroutes.rb:
私のrake routes
出力:
私の vehicle_pictures_controller.rb:
新しい車両の写真を投稿すると、create メソッドが期待どおりに呼び出されますが、次のエラーが発生します。
を変更すると、動作respond_with
しrespond_with(@picture, :location => vehicle_picture_url(@vehicle.id, @picture.id))
ます。
しかし、私が理解していることから、これを行う必要はありません。私は何を間違っていますか?
ruby-on-rails - ネストされたルートでのエラー レンダリング
検証に失敗したユーザー メッセージングがある場合、きれいな URL を維持しようとしています。
次のようなルート ファイルがあります。
したがって、new_user_message_path(@user)は次を返します。
メッセージの new.erb ビューは正しいコードを生成します。
検証が失敗すると、フォーム エラーが表示されますが、間違ったアクションがレンダリングされます。
したがって、ユーザーが 2 回目にフォームを送信すると、「create」メソッドはuser_idを見つけることができません。
これが私のコントローラーメソッドです:
そして私のフォームビュー:
ruby-on-rails - 任意のモデルのインスタンスに対して機能するコントローラー関数を定義する方法
Rails アプリのバージョニングの実装 モデルのすべてのバージョンを表示するビューに、元に戻すなどの追加機能が必要paper_trail
です。バージョニングには gem を使用します。
すべてのモデルのようなコントローラー関数versions
とビューを作成することでそれを実行できることはわかっていますが、すべてのモデルに対して一度に実行したいと考えています。model.versions
属性は常に同じように構造化されているため、これは可能なはずです。
理想的には、URL は次のようになります/pages/testpage/versions
がtestpage
、 はページ ID です。
これは、レールのネストされたルートの概念に似ているようです。
ただし、ネストされたルートの問題は次のとおりです。
- モデルごとに追加の構成が必要
testpage
インスタンスであるモデルを知らずにオブジェクトにアクセスすることはできません。また、バージョン コントローラーに提供されるのは params ハッシュだけであるため、モデルを特定する方法を見つけることもできませんでした。
私は、最初のアイデアに従わない可能性のある代替ソリューションに対して完全にオープンです。