3

次の URL からアクセスできるユーザー プロファイルを取得したいと考えています。root/user/(username)

今のところ、私はそれを使用してroot/user/(id)いますが、よりユーザーフレンドリーで、URL のユーザー名と共有できるようにしたいと考えています。

これが私が現在設定している方法です

#user_controller.rb

class UserController < ApplicationController
  def profile
    @user = User.find(params[:id])
  end
end


#routes.rb

match 'user/:id' => 'user#profile'


#profile.html.erb

<h1><%= @user.firstname %>'s Profile</h1>

基本的に私がやろうとしているのは、に変更すること:idです:username。デバイスからユーザーモデルでユーザー名を作成したので、それが機能していることがわかります。しかし、今、URL でユーザー名を取得しようとすると、Couldn't find User with id=username.

4

2 に答える 2

6

コントローラーを変更する

class UserController < ApplicationController
  def profile
    @user = User.find_by_username(params[:username])
  end
end

あとはルート

match 'user/:username' => 'user#profile'
于 2013-05-05T17:22:05.370 に答える
4

試してみてくださいfriendly_id。コントローラーまたはモデル レベルでハックする必要はありません。

于 2013-05-05T17:56:38.893 に答える