关注后无法重定向到用户配置文件

时间:2013-02-10 00:57:43

标签: ruby-on-rails ruby relationships

我正在使用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?)

2 个答案:

答案 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)的导航快捷方式,这就是您所需要的。