我正在研究Rails教程的第9章练习1.我不确定如何测试,在正常登录后,用户将被重定向到他/她的个人资料.练习的提示意味着我应该在users_edit_test.rb中修改"使用友好转发的成功编辑"测试,以便将session [:forwarding_url]的值与用户配置文件路径的值进行比较.为此,我补充道
assert_equal session[:forwarding_url], user_path
Run Code Online (Sandbox Code Playgroud)
到功能结束.但是,当我进行rake测试时,我收到此错误:
Expected: nil
Actual: "/users/762146111"
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
更新:以下是正在测试的控制器和帮助程序:
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
redirect_back_or user
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
log_out if logged_in?
redirect_to root_url
end
end
module SessionsHelper
# Logs in the given user.
def log_in(user)
session[:user_id] = user.id
end
# Remembers …Run Code Online (Sandbox Code Playgroud) 我希望用户能够使用 Facebook 注册我的 Android 应用程序SDK。为了获取他们的信息,我正在GraphRequest使用“ email”和“ public_profile”权限执行 a 。根据此页面,用户的名字和姓氏应该可以在“ first_name”和“ last_name”字段中访问。但是,当我单击该按钮时,我收到一条错误消息,指出 first_name 没有值。JSON返回的数组如下:
{"name":"First M. Last","id":"1234567890123456"}
Run Code Online (Sandbox Code Playgroud)
我还没有提交我的应用程序以供审核,因为它尚未完成。这可能与这个问题有关吗?
我一直致力于一个用输入文本计算元音的程序.每次发现元音时,它都会使用此方法递归添加元音计数.但是,每次lastPos达到负数时,我都会出现一个越界错误.如果lastPos达到-1,我怎么能停止这个?
static int R_countVowels(String s, int lastPos)
{
switch (s.charAt(lastPos))
{ case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U': return (1 + R_countVowels(s, --lastPos));
default: return R_countVowels(s, --lastPos);
}
}
Run Code Online (Sandbox Code Playgroud)