0

私は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?)
4

2 に答える 2

0

を削除する.usernameと、redirect_to @user期待どおりに動作するはずです。

渡すものはすべて有効なパスである必要があり、root_url に追加された場合、redirect_to少なくとも前に がない文字列は無効になります。/これはまさにあなたが得ているエラーです。

redirect_to だけの場合、それは@modelのレールショートカットで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 に答える