私はHartlのチュートリアルを完了し、Twitterのクローンと同じ方法でバニティURLを作成しようとしています。 www.twitter.com/realDonaldTrump/users /:の代わりにルートルート/名前
URLを/ users /:slugのようにすることができました。 ワンダーリング - どうすれば入手できますか?/:スラッグですか?
1.In私のUserモデルは、「ユーザ名」には列がありませんので、私が代わりに「名前」を使用:
は、ここで私がこれまで行ってきたものです。
2.ユーザーモデルDBにスラグ列を追加するための新しい移行。レールコンソールに
3.Pluggedは、次のように入力して、すべてのユーザーのためのナメクジを追加します。
User.all.each do |user|
user.slug = user.name.downcase.parameterize
user.save
end
4.ConfiguredがUserController showアクションへ:今
def show
@user = User.find_by_slug(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
redirect_to root_url and return unless @user.activated?
end
私はそれを設定したことをそのようにshows/users /:slug、どうすれば変更できますか?/:slug?
私はプロファイルページ/ chloe-schambergerを訪れることができますが、うまく動作していると思われる 'get '/:id'、to: 'users#show'' – Sravan
にroueを変更してください。しかし、今私は私のページの他のどれにも行けません。 nilのための 未定義のメソッド 'マイクロポスト:私はエラーを取得するNilClass DEF @user = User.find_by_slug(のparams [:IDを])を示し @microposts = @ user.microposts.paginate(ページ:のparams [:ページ]) root_urlにredirect_toして、@ user.activatedを除いて返されますか? end – doctopus
/users、/ help、/ aboutなどのコレクションページを訪問するたびに、ルートは次のように考える:id = users。これをどうやって解決するのですか? – doctopus