我正在使用acts_as_follower gem。我也使用Devise作为我的用户模型而不是像users /:id这样的格式,我允许用户拥有用户名URL。我正在努力允许用户互相关注,但在跟踪用户之后,Rails无法重定向到用户的个人资料。这是我的代码。
用户控制器
def show
@user = User.find_by_username(params[:id].downcase)
end
def follow
@user = User.find(params[:id])
if current_user
current_user.follow(@user)
redirect_to @user.username
else
flash[:error] = "You Must be logged in"
end
end
这是我在服务器中收到的错误。
ERROR URI::InvalidURIError: the scheme http does not accept registry part: localhost:3000alaxics (or bad hostname?)
答案 0 :(得分:0)
你可能想要更像
的东西redirect_to user_path(@user.username)
或者如果您打算自己编写路径,只需redirect_to "/users/#{@user.username}"
答案 1 :(得分:0)
删除.username
,只需redirect_to @user
按预期工作。
传递给redirect_to
的任何内容都必须是有效路径,并且当附加到root_url时,前面至少没有/
的任何字符串都无效。这正是你得到的错误。
如果您只是redirect_to @model
,那就是redirect_to model_path(@model)
的导航快捷方式,这就是您所需要的。