1.用rails搭建工程
rails -v //查看rails是否安装 rails new baby //建一个名为baby的工程
2.登录注册
推荐大家看看这样一个视频:http://happycasts.net/episodes/84?autoplay=true
首先初始化一下数据库:
rake db:create;rake db:migrate
生成user model和表:
rails g model user name:string password_digest:string token:string rake db:migrate //创建表
生成controller和view:
rails g controller users welcome signup login //生成welcome,signup,和login的页面及对应的controller
大家自己配置路由,制作页面,下面我来说一下密码和确认密码的比较,我们可以引用ruby写好的方法,在user.rb中写入:
has_secure_password
为了这个方法能够使用,我们需要在Gemfile中加入:
gem 'bcrypt', '~> 3.1.7'
然后执行一下:
bundle install
当修改了Gemfile 文件中的内容不要忘了都要执行一下bundle install。
如果写完前面的执行:
rails s
在页面上进行操作有错误的话,可以在Gemfile中添上这样一句:
gem 'protected_attributes'
这样它就会自动比较注册两次输入的密码了。
下面来说一下对输入的信息进行验证:
在user.rb中写入:
validates :name, :presence => true #填写的用户名不能为空,
validates :password, :presence => true
validates :password_confirmation, :presence => true
validates :name,:uniqueness => {:case_sensitive => false} #用户名不能重复
然后在注册页面显示错误,每次只显示一条:
<% if @user.errors.any? %> //判断输入是否有错误
<div class = "alert alert-danger">
<%= @user.errors.full_messages.first %> //有错误的话显示所有错误的第一个
</div>
<% end %>
@user.errors.full_message 打印出来是所有错误组成的一个数组。
最后说一下关于ruby中的链接写法:
在rails工程中views文件夹中有users文件夹,里面有login和signup两个页面,以及对应的controller
<a href = "signup">用户注册</a>是在html中的写法,
在rails工程中页面的链接可以这样写,
<%= link_to "用户注册",signup_path %>
或
<%= link_to "用户注册",{ :action => "signup"} %>
在路由中要配置:get "/signup" => "users#signup"
link_to_unless_current:当前所在页面的链接不显示
<%= link_to_unless_current current_user.name,welcome_path %>
当页面在welcome页面时,只会显示文字,不会显示链接,点击也不可用,当不再welcome页面时,显示文字,链接可用。