6

私は Rails でブログを作成していますが、最初に行ったのは管理領域です (今ではアプリケーションにあるのはこれだけです)。Bootstrap を使用してすべてのページをすばやく設計し、認証用に Devise を使用しました。

私が使用したすべてのモデル、ビュー、およびコントローラーについて、モデルとモデルscaffoldingの両方を生成しました。AdminPost

/admin問題は、REAL ブログを作成し、ルートを使用して管理パネルにアクセスする必要があることです。たとえば、新しい投稿を作成するには、にアクセスする必要がありますhttp:/mysite/admin/posts/new

もう 1 つの問題は、パブリック ブログ ページ (Bootstrap ではない) でまったく異なるデザインを使用し、もちろん、異なるコントローラー、ビュー、およびルートを使用することです。

それで、何ができるでしょうか?

4

2 に答える 2

15

Adminあなたの場合、モデルというより名前空間のように見えるので、モデルを削除することをお勧めします。代わりに、次のようにファイルに:admin名前空間を作成します。routes.rb

namespace :admin do
   resources :posts
end

これにより、このブロック内のすべてのルートに接頭辞 w/ が付けられますadmin。したがって、管理者側で投稿を編集するための URL はadmin/posts/:id/edit.

次にAdminController、すべての管理コントローラーが継承する を作成することをお勧めします。このようにして、新しいレイアウトを指定できます。Admin::PostsController次に、でを作成できますapp/controllers/admin/posts_controller.rb

アプリ/コントローラー/admin_controller.rb

class AdminController < ApplicationController
  layout 'admin'
end

app/controllers/admin/posts_controller.rb

class Admin::PostsController < AdminController
  def index
    # admin/posts
  end
end

アプリ/ビュー/管理者/投稿/index.html.erb

Hello from the admin/posts view!
于 2013-05-08T15:31:05.313 に答える
0

ブログページは公開する必要があると思います。つまり、非認証で表示する必要があります。残りの部分については、すでにデバイスを使用してその領域を保護しています。

別のテンプレートは非常に簡単です。2 つのレイアウトを作成し、コントローラーで目的のレイアウトを設定できます。

于 2013-05-08T15:31:47.733 に答える