活动通小结 ruby on rails 认证登录模块

做活动通以前没有接触过ruby语言,所以刚开始做活动通的时候比较茫然,后来先粗略的学习了一下ruby的语言,还是有很多不理解的地方,先直接拿过来用,等以后做完活动通了在回过头来理解一下ruby语言的运行机制。我前面已经写了怎样用rails新建一个工程,在这里不再赘述,如有需要可以看我前面的两篇博客。这里我主要讲一下在做活动通中遇到的一些难点,以及问题。

1.关于routing

运行项目会首先从public里面找静态的页面如果找到直接返回web serrver,如果没有找到会进入到rails代码,进入routing,routing会告诉它往哪走,也就是说如果有请求链接,通过routing就能够决定我们到底要执行哪个controller,还有哪个controller里的哪个action,然后controller会从model中取数据,然后返回给view

路由里的几个方法

get 不修改服务器上的内容,只是从服务器上取到数据

post  修改服务器上的内容

put 更新服务器上的内容

delete 删除服务器上的内容

举个例子

get "/modify_password" => "users#modify_password", :as => "modify_password"

 modify_password是页面,找modify_password页面是会去users_controller里寻找modify_password方法,:as是为它命名为modify_password,有两种用法

= link_to "首页",modify_password_path  //相当于href="/modify_password"
= link_to "首页",modify_password_url   //相当于 href="localhost:3000/modify_password"

 2.关于controller

controller通过model 对DB进行CRUD(即数据的增删改差),然后返回给view

举个例子

def create
  @user=User.new(params[:user])   //@user可以把值传给view
  if @user.save
    render :welcome         //如果保存成功跳转welcome
else
      render :signup      //不成功跳转signup
end
end

 3.form_for和form_tag  rails 内建的表单辅助方法

form_for它可以在你修改的时候自动将值传入,例如

<%= form_for @event do |f| %>
    <%= f.text_field :name %>
    <%= f.submit %>
<% end %>

 form_tag不需要对应的表单

<%= form_tag "/search" do %>
    <%= text_field_tag :keyword %>
    <%= submit_tag %>
<% end %>

 4.has_secure_password rails内建的重复密码验证机制

需要在gemfile中添加

gem 'bcrypt', '~> 3.1.7'

 运行bundle 进行安装

%p
        .input-group
          = f.label :请设置密码, :class => "input-group-addon", 
          = f.password_field :password, :class => "form-control"
        %p
        .input-group
          = f.label :请确认重复密码, :class => "input-group-addon", 
          = f.password_field :password_confirmation, :class => "form-control"

 如果password和password_confirmation不一致的话,has_secure_password机制会自动提交失败。

先写到这里,刚学习ruby没多长时间,如果有任何问题,欢迎指正。

相关推荐