我按照omniauth的轨道演员创建了twitter的身份验证(http://railscasts.com/episodes/235-omniauth-part-1?view=comments).它在开发中工作正常但我无法让rspec检测到我已经创建了身份验证.这是我的身份验证控制器中创建功能的代码段:
def create
begin
auth_hash = request.env["omniauth.auth"]
@auth = current_user.authentications.build( :provider => auth_hash['provider'],
:uid => auth_hash['uid'],
:name => auth_hash['user_info']['name'],
:nickname => auth_hash['user_info']['nickname'],
:image => auth_hash['user_info']['image']
)
if @auth.provider.downcase == "twitter"
@auth.auth_token = auth_hash['credentials']['token']
@auth.secret_token = auth_hash['credentials']['secret']
@auth.site = auth_hash['user_info']['urls']['Twitter']
elsif @auth.provider == "Facebook"
end
rescue
redirect_to current_user, :flash => { :error => "Missing oauth data!! Check with administrator!"}
else
if @auth.save
msg = "Authentication success"
else
msg = "Already have authentication"
end
redirect_to current_user, :notice => msg
end …Run Code Online (Sandbox Code Playgroud)