Lea*_*RoR 13 ruby-on-rails devise ruby-on-rails-3
使用设计,我如何将我的注册作为我的登陆/欢迎页面,然后在注册后,他们进入网站内的个人资料/登录区域?
我试图弄清楚如何使它像Facebook这是网站的两面; 注册或登录后,仅限用户使用外部(注册,关于,联系等)和内部(个人资料,注销等).
谢谢.
PS我是Ruby on Rails的新手并创建应用程序,但我确实使用Rails 3 Tutorial进行身份验证系统,我了解大多数事情开始使用Devise,我不知道从这种情况开始.
我打算使用2个应用程序布局,1个在注册之前是layouts/welcome.html.erb和PagesController(about,terms等),另一个用于登录用户,它们将是layouts/application.html.erb和ApplicationController (个人资料,新闻,补充等),这是最好的步骤吗?
在您的routes.rb中:
root :to => 'welcome#index'
Run Code Online (Sandbox Code Playgroud)
控制器和索引是受欢迎的操作.
在您的应用程序控制器
def after_sign_in_path_for(user)
"/url_you_want_to_redirect_to/"
end
Run Code Online (Sandbox Code Playgroud)
这是我使用Rails 3.1.0和Devise的新方法1.5.0:
的routes.rb
root :to => "pages#redirect_to_sign_up"
devise_for :users do
get "welcome" => "devise/registrations#new", :as => :new_user_registration
get "account_settings" => "devise/registrations#edit"
get "sign_in" => "devise/sessions#new"
get "sign_out" => "devise/sessions#destroy"
get "new_password", :to => "devise/passwords#new"
end
match 'home', :to => "user_pages#home"
namespace :user do
root :to => "user_pages#home"
end
Run Code Online (Sandbox Code Playgroud)
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
protected
def after_sign_in_path_for(resource)
stored_location_for(:user) || root_path
end
private
def after_sign_out_path_for(resource)
stored_location_for(:user) || root_path
end
end
Run Code Online (Sandbox Code Playgroud)
pages_controller.rb
class PagesController < ApplicationController
def redirect_to_sign_up
if signed_in?.blank?
redirect_to new_user_registration_path
else
redirect_to home_path
end
end
end
Run Code Online (Sandbox Code Playgroud)
user_pages_controller.rb
class UserPagesController < ApplicationController
before_filter :authenticate_user!
def home
end
def profile
end
end
Run Code Online (Sandbox Code Playgroud)