2013-02-10 36 views
0

我正在使用acts_as_follower gem。我也为我的用户模型使用Devise,而不是像用户/: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

你可以尝试在用户名前添加'/'吗?像'redirect_to“/#{@ user.username}”' – jvnill 2013-02-10 01:31:49

回答

0

你可能想要的东西更像

redirect_to user_path(@user.username) 

或者,如果你在写自己的路,只是redirect_to "https://stackoverflow.com/users/#{@user.username}"

+0

啊。这就说得通了。当我谈到这件事时,我不知道为什么我没有想到。谢谢,克里斯。 – 2013-02-10 01:50:08

0

取出.username意图,只是redirect_to @user预期应该工作。

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

如果你只是redirect_to @model,这是一个轨道快捷键redirect_to model_path(@model),这是你所需要的。

相关问题