0

我正在使用acts_as_follower gem。我还在为我的用户模型使用设计,而不是像 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?)
4

2 回答 2

0

删除.username,redirect_to @user应该可以按预期工作。

无论您传递给什么,redirect_to都必须是有效路径,并且任何前面至少没有 a/的字符串在附加到您的 root_url 时都将无效。这正是你得到的错误。

如果您只是 redirect_to ,那是您需要@model的 rails 快捷方式。redirect_to model_path(@model)

于 2013-02-10T01:43:16.410 回答
0

你可能想要更多类似的东西

redirect_to user_path(@user.username)

或者,如果您打算自己编写路径,只需redirect_to "/users/#{@user.username}"

于 2013-02-10T01:38:40.440 回答