問題タブ [nested-resources]
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 - ネストされたリソースを持つRails form_for:「ルートが一致しません」
ファイルに次のネストされたリソースがありroutes.rb
ます。内部リソースはコントローラー名を指定します。
のビューでBatchesTags#new
、フォームを作成しようとしています:
このページを読み込もうとすると ( /sets/1/tags/new
)、次のメッセージとともに ActionController::RoutingError が返されます。
{:action="show", :controller="batches_tags"} に一致するルートはありません
しかし、 を実行すると、このルートが存在する$ rake routes
ことが明確に示されます。
このエラーを修正する方法を知っている人はいますか?
編集:
のビューではBatches#show
、同じbatch_tag_path
関数を使用しており、完全に機能します。
ruby-on-rails-3 - 部分的にネストされたリソースフルなルートを設定するには?
Listings
私の Rails サイトでは、ユーザーが売りたい商品を投稿します。他のユーザーはこれらのリストを閲覧し、リンクをクリックして販売者に連絡できますMessageThread
。
MessageThreads
のコンテキスト外で作成されることは決してないListing
ため、リソースの豊富なルートをネストしました。ただし、作成後にコンテキストを表示/編集する必要はありません。これは、およびアクションListing
にのみ必要です。私は次のように設定しました:new
create
アクションビューのform_for
構文を理解できないようです...私は理解していますが、それは機能していません。これは、このオブジェクトを設定する正しい方法ですか? ルートをネストするのではなく、リスティング ID を URL のパラメーターとして渡す必要がありますか? または、リストの下にある message_thread を常に参照しますか?new
MessageThreadsController
form_for @message_thread
ruby-on-rails - Ruby on Rails form_for でパスエラーが発生
私の Ruby on Rails コードには、次のタスク用の edit.html.erb ファイルがあります。
次に、同じディレクトリに次のコードを含む _form テンプレートがあります。
問題は、編集ページに移動しようとするとエラーが発生することです。エラーには「undefined task_path」と表示されているため、Rails がタスクへのパスを適切に識別していないことがわかります。
プログラムの構造は、多くのタスクを含むリストがあり、各タスクにはリストがあります。routes ファイルは、次のように構造を宣言します。
/lists/:list_id/tasks/:task_id/edit でタスクを編集しようとしていることを form_for で特定するにはどうすればよいですか?
ご協力ありがとうございました!
ruby-on-rails - 複合主キー(id + parent_id)を持つRails3.1ネストされたリソース
次のように、routes.rbにネストされた2つのリソースが必要であると仮定します。
慣例により、 comments.idはコメントの主キーになり、comments.post_idは外部キーになります。
主キーは複合キー [comments.post_id、comments.id]である必要があります。
id == 1の個別の投稿の最初のコメントをすべて持つことができるように、id==2の個別の投稿の2番目のコメントごとに...
もちろん、コメント(子リソース)を参照するすべてのルートを、その投稿(親リソース)も参照せずに無効にする必要があります。
これは単なる例です。私の実際のプロジェクトはブログに関するものではありません(この問題は別の方法で処理しました)。互換性を実現するために、ネストされたリソースに対してこのような動作を実現する方法があるかどうかを知りたいです。レガシーデータベースを使用します。
ありがとうございました。
polymorphic-associations - Rails 3 のネストされたリソース、ポリモーフィックな関連付けとフォーム
当面の質問は、主要なトピックを扱います。
- ネストされたリソース
- ポリモーフィック アソシエーション
- フォーム
写真と記事があり、どちらにもコメントがあると仮定します。これにより、ポリモーフィック アソシエーションが作成されます。
コメントを追加および表示するビューは、写真と記事の間で共有されます。
また、リソースの写真と記事は、次のように他のリソースにネストされています。
上記のフォームでわかるように、ポリモーフィック リソースがありますが、リクエスト パスに応じて親リソースと祖父母リソースが必要です。ハードコードされている場合 (絶対にやらない)、form_for には次の 2 つのうちの 1 つがあります。
また
多くの記事や Stackoverflow の回答に見られるように、CommentsController から親を見つけることができると仮定します。
どうすれば祖父母を見つけて、これらすべてを form_for ヘルパーに入れることができるでしょうか?
よろしくお願いします!
ruby-on-rails - ネストされたリソースで不適切にルーティングされたRailsDestroyメソッド
ネストされたタスクを持つListオブジェクトがあります。個々のタスクを表示するページと、ユーザーが個々のタスクを編集できるページを作成しました。タスク編集ページのリストからタスクを削除する機能を追加したいと思います。次のコードを使用する
収量
このコードはshow.html.erbページにあります。@taskを呼び出してタスク内に保存されているすべてのデータを表示しているため、この問題は何らかのルーティングエラーである可能性がありますが、理解できないようです。アウト。
関連するコントローラーメソッドは
deleteメソッドを使用すると、指定した@taskがparamsを介してdestroyメソッドに送信されると思いましたが、このエラーは、これが正確に機能していないことを示しているようです。では、Railsでネストされたリソースを適切に破棄するにはどうすればよいですか?
編集: ネストされたリソースを含むルートファイルは次のとおりです。
ご協力ありがとうございました!
ruby-on-rails-3.1 - ネストされたリソースで「新しい」メソッドを呼び出すルーティング エラー
2 つのネストされたリソースがあります。
routes.rb には
新しい場所を作成するためのコードは次のとおりです。
新しい場所を作成しようとすると、次のエラーが表示されます
ルーティング エラー
{:action=>"show", :controller=>"locations", :customer_id=>#, :id=>#} に一致するルートはありません
「new」の代わりに :action=>「show」が呼び出されるのはなぜですか?
rake routes 出力は
location_controller.rb の新しいアクションのコントローラー コードは次のとおりです。
エラーがわかりません。正しく動作する別の 2 つのネストされたリソースがあり、すべてのコードをチェックしましたが、まったく同じように見えます... ?
ruby-on-rails-3 - RSpec でネストされたリソース コントローラーをテストする - カウントが 1 変化しない
ネストされたリソースがあります:
RSpec コントローラーに続いて: asset_actions_controller_spec.rb
Spec の実行中に次のエラーが発生しました。
この失敗の理由がわかりません。助言がありますか?
注: Rails 3.1.3、Ruby 1.9.3p5、RSpec 2.8.0
ruby-on-rails - Rails ルートは、ネストされたリソースで New アクションの Post リクエストを生成します
次のネストされたリソースがあります。
私のリスト/show.html.hamlには、
ここで、ボタンをクリックすると、Rails が POST リクエストを生成するため、エラーが発生します。
更新すると (GET 要求)、ページが正しく表示されます。
この誤ったルーティングは、accept と reject という 2 つのアクションを追加した場合にのみ発生すると思います。これはたまたま POST アクションです。
Rails のバグですか、それとも私のせいですか? このエラーを防ぐにはどうすればよいですか?
ありがとうございました。
ruby-on-rails - CanCan 深くネストされたリソース
私はroutes.rb
次のようなものを持っています:
私のability.rb
作品では、このようなもの、
しかし、浅いネスティングでは、より深いネスティングが問題になるようです。
最後の例と同じくらい深いネストを処理するために CanCan を取得する方法についてのアイデアはありますか?