2016-10-24 10 views
0

をexample.com/blog/post/1するexample.com/post/1を作るために、私はルート root 'posts#index'Railsの方法

でブログを持っているとexample.com/example.com/posts

で最高の作品しかし、私このようなものがあります:

example.com/blog/posts/1です。

私はブログControllerを作成しようとした

resources :blog do 
resources :posts 
end 

を追加しかし、あなたが述べたように、あなたがpostblogとの間の関係を持っていない場合、これはblog/:id/posts/:id

+0

あなたはブログや記事の関係を持っていますか? – Sravan

+0

いいえ、投稿コントローラとモデルから作成を開始しました。それから 'example.com/blog/post'にするためのブログコントローラを作成しましたが、できません –

答えて

0

だけに@スラヴンの答えに展開してください。/blog /で始まるルートが複数ある場合は、Rails guide on routingをチェックしてください。

あなたは/ブログ/の下に対応するルートを作成します

scope '/blog' do 
    resources :posts 
    resources :users 
    resources :images 
end 

の線に沿って何かを追加することができます。

1

に私のルートを作ってきました、レールは自分たちのルートとして宣言する自由を与えます。

したがって、ルートをexample.com/posts/1から、example.com/blog/posts/1にするには、最後にカスタムルートを追加するだけです。これが何をするか

get '/blog/posts/:id', to: :show, controller: 'posts'

は、乗り物の上に、以前のルートであり、このルートの最終を作ります。

今すぐあなたが使用してアクセスすることができますすくいルートを入力し、それが

GET /blog/posts/:id(.:format) posts#show

、としてあなたのための最後のルートを与える、

example.com/blog/posts/1

Reference for rails routing

+0

@Aditya Nagla、これを試してみましたか? – Sravan

+0

はい!しかしこれはあまりにも複雑です。しかし、私は '42linoge'sの答えが少し簡単だと分かった。 –

0
namespace :blog do 
    resources :posts 
    resources :users 
    resources :images 
end 

と名前空間を使用して、コントローラは、次のようになります。ブログ:: PostsControllerの

関連する問題