您的位置:首页 > 大数据 > 人工智能

【Rails学习笔记】用户注册的流程

2013-10-07 16:43 495 查看
在网站布局中加入debug信息 

<%= debug(params) if Rails.env.development? %>

添加 Gravatar 头像和侧边栏

<% provide(:title, @user.name) %>
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>


然后需要我们自己去定义Gravatar方法 

module UsersHelper

# Returns the Gravatar (http://gravatar.com/) for the given user.
def gravatar_for(user)
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end


填写用户注册表单:

<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>

<div class="row">
<div class="span6 offset3">
<%= form_for(@user) do |f| %>

<%= f.label :name %>
<%= f.text_field :name %>

<%= f.label :email %>
<%= f.text_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>

<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>


然后要分别对注册成功和失败两种情况进行测试 

describe "signup" do
before {visit signup_path}
let(:submit) {"Create my account"}

describe "with invalid information" do
it "should not create a user" do
expect {click_button submit}.not_to change(User, :count)

end
end
describe "with valid information" do
before do
fill_in "Name", with: "Example User"
fill_in "Email", with: "user@example.com"
fill_in "Password", with: "foobar"
fill_in "Confirmation", with: "foobar"
end
it "should create a user" do
expect {click_button submit}.to change(User, :count).by(1)
end
end

end


对应action代码如下:

def create
@user = User.new(user_params)
if @user.save
#
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: