rails devise gem使用

最近一直在学习rails,学习了有大约一个月的时间了,前段时间看GEM的使用教程总是很费劲,最近自己静下心来,专心学习了一下GEM的使用,下面就介绍一下devise这个gem的使用。

进入项目

1、添加gem

   gem 'devise'

2、安装gem

   bundle install

3、创建一个页面方便我们测试是否成功

  rails g controller home index

4、初始化devise

  rails g devise:install

会有如下提示:

  1.   1. Setup default url options for your specific environment. Here is an

         example of development environment:

           config.action_mailer.default_url_options = { :host => 'localhost:3000' }

         This is a required Rails configuration. In production it must be the

         actual host of your application

      2. Ensure you have defined root_url to *something* in your config/routes.rb.

         For example:

           root :to => "home#index"

      3. Ensure you have flash messages in app/views/layouts/application.html.erb.

         For example:

           <p class="notice"><%= notice %></p>

           <p class="alert"><%= alert %></p>

      4. If you are deploying Rails 3.1 on Heroku, you may want to set:

           config.assets.initialize_on_precompile = false

         On config/application.rb forcing your application to not access the DB

         or load models when precompiling your assets.

5、创建user model

  rails g devise user

6、这样创建出来的user 模型只有注册邮件,密码的功能我们要给他加入用户名

   rails g migration add_name_to_users

这样我们就把他加入到了user model中

然后执行

rake db:migrate

7、产生视图模板

rails g devise:views

然后我们就可以订制我们自己的视图了

我们可以用

current_user方法获得session中的数据

8、生成index

rails g controller home index

修改index.html

<% if user_signed_in? %> <!-- Provided by devise -->
    <div style="float:right">
      <%= current_user.email %> |
      <%= link_to '用户信息', edit_user_registration_path %> |
      <%= link_to '退出登录', destroy_user_session_path, :method => :delete %> |
    </div>
    <% end %>
    <% unless user_signed_in? %>
    <div style="float:right">
      <%= link_to '注册', new_user_registration_path %> |
      <%= link_to '登录', new_user_session_path %>
    </div>
<% end %>

修改默认路由

root :to => "home#index"

 最后

rails s

相关推荐