質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1701閲覧

rails routes のnamespaceについて

SATOM

総合スコア15

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/12/22 06:43

###前提・実現したいこと
Railにて下記要件の部分を作っております。
・Ownerモデルが複数のPlanモデルを所有している。

app/model/owner.rb has_many :plans app/model/plan.rb blongs_to :owner

・Planモデルを追加、編集をするオーナー用の管理ページを作る。

・config/routes.rb resources :owners, only: [:show,:edit,:update] namespace :owners do resources :plans end ・フォルダ構成 app/controller/owners/plans.controller.rb app/views/owners/plans/index.html.erb ・plans.controller.rb class Owners::PlansController < ApplicationController def index binding.pry end end ・views/owners/plans/index.html.erb <p>owner/plans/index.html.erbのViewです。</p> ・rails routesの結果 owners_plans_path GET /owners/plans(.:format) owners/plans#index owners_plans_path POST /owners/plans(.:format) owners/plans#create

###発生している問題・エラーメッセージ
<%= link_to "プランの一覧", owners_plans_path %>で上記のplanに一覧にとばしたいのですが、エラーは特にでず、views/owners/show.html.erbを表示してしまいます。
しかし、URL自体は(localhost:3000/owners/plans)に飛んでいるようです。
binding.pryでなにも動きがないことから、controller自体に飛んでないものと思いますが、原因がわかりません。

前提を実現する為には、どのようにすればよいか、ご存知の方いらっしゃいましたら、ご教授いただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ご質問の現象は
owners#showplans という文字列が id として controller に渡っていると考えられます。

解決案
namespace を使わなければいけない理由がなければ collection を使うのはいかがでしょうか?

以下のように書き直せるかと思います
※ controller, viewのファイルの置き場所が変わります

controller の path

app/controllers/owners/plans_controller.rb -> app/controllers/plans_controllers.rb

view の path

app/views/owners/plans/* -> app/views/plans/*

config/routes.rb

ruby

1resources :owners, only: [:show,:edit,:update] do 2 collection do 3 resources :plans 4 end 5end 6

投稿2016/12/22 09:17

satoshih

総合スコア797

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SATOM

2016/12/24 03:25

回答いただきありがとうございます。 ご教授いただきました方法で、解決致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問