を設定する別のコントローラ/ビューに考案:ルートは、私は次のことを達成しようとしている
私は訪問者がアルバムのリストを表示(indexアクション)とアルバムのいずれかをクリックしてできる簡単なページを持っています、各アルバムの写真を見る(ショーアクション)。他のアクション(編集、新規、更新、破棄)には到達できません。
ユーザーがログインすると、インデックスとショーページが表示され、他のすべてのアクションが利用できるはずですが、今度はインデックスとショーのロックが異なります。ただし、URLは以前とは異なるものではありません。
私はこれらのルートを作成しました:
users_albums GET /users/albums(.:format) users/albums#index
users_album GET /users/albums/:id(.:format) users/albums#show
new_users_album GET /users/albums/new(.:format) users/albums#new
.... and so on ...
albums GET /albums(.:format) albums#index
album GET /albums/:id(.:format) albums#show
私も、私は名前空間(ログイン)ユーザーコントローラとビューを配置app/controllers
とapp/views
ディレクトリの下user
ディレクトリを作成しました。
デフォルトのコントローラー/ビューを使用する必要がありますが、ユーザーが(deviseを使用して)サインインすると、user
ディレクトリーのコントローラー/ビューが引き継がれます。
このリダイレクトはどのように配置できますか?
これは、これまでのところ、私のroutes.rbを次のとおりです。
devise_for :users, skip: [:registrations]
as :user do
get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
namespace :users do
resources :albums do
resources :photos
end
end
resources :albums, only: [:index, :show] do
resources :photos, only: [:index, :show]
end
root to: "albums#index"
私は以前かなりの研究をしましたが、私はこの問題に遭遇しませんでした。それは本当に簡単に、ちょうどいくつかのリンクを変更する必要があったと私はすべて設定されました。 – loxosceles