2011-07-04 1 views
0

まず、私はfriendly_id 3.2.1.1でレール3.0.8を使用しています。Rails 3:新しい/ edit/destroyを/ adminに送信している間に、コントローラのインデックスとルートを表示するにはどうすればよいですか?

私はwebsite.com/:titleの投稿を閲覧できますので、「/ posts」を削除してください。

でも、私は/ adminのビューを持っていたいと思います。そこから、ユーザーは投稿を作成/編集/破棄できるはずです。私はすでにadmin.html.erbビューを持っていて、さまざまなアクションへのリンクを持っています。私のルートがどのように見えるファイル

は今:

MyApp::Application.routes.draw do 
    root :to => 'posts#index' 
    resources :posts 
    match "/:id" => "posts#show" 
    match "/admin" => "posts#admin" 
end 

これはwebsite.com/:titleのために動作しますが、website.com/adminのために、私はエラーを取得する:

Couldn't find Post with ID=admin 

.. ..理にかなっている。しかし、私はこの問題を解決する方法がわかりません。

答えて

2

ルールは上から下まで実行されます。管理ルールをリソース定義の上に置きます。

+0

うんを、それを固定しています。 – okor

0

/adminを最初に入力すると、(cellcortexのように)動作します。 を'admin'からきれいに分けることができる場合は、:constraintsを使用することもできます。例えば、あなたの:id値が数値であれば、このような何かが動作するはずです:あなたのような単純なケースで

match '/:id' => 'posts#show', :constraints => { :id => /\d+/ } 
match '/admin' => 'posts#admin' 

、正しい順序で物事を置くことは正常に動作します。ただし、ルーティングが複雑な場合は、:constraintsのアプローチが効果的で、混乱や混乱を避けることができます。あなたの記事のこのすべてとこの

resource :posts, :path => '/' 

が直接

ルート

下になります

0

使っだから投稿クラスには、これを追加する可能性があります。

def to_param 
    "#{id}-#{title.parameterize}" 
end 
関連する問題