私の Rails アプリケーションでは、localhost:3000/users/:id ではなく、localhost:3000/users/permalink になるように、ユーザー用のランダムなパーマリンクを作成しようとしています。
ここで作成された投稿に従いました: レールで ID をランダムな 8 桁の英数字にする方法は?
投稿の後、ユーザー用にランダムなパーマリンク列とページを作成できましたが、サブページを機能させることができませんでした。私のユーザーのために、私は現在サブページを持っています: フォロワーなど.
質問: ページは現在、localhost:3000/users/ /followers などにルーティングされています。しかし、これらのページを localhost:3000/users/ /followers など:id
にもルーティングできるように、routes.rb を修正する方法を誰かが知っていますか?permalink
ルート.rb
match 'users/:permalink' => 'users#show', :as => "show_user"
resources :users do
member do
get :followers
end
end
user.rb
attr_accessible :permalink
before_create :make_it_permalink
def make_it_permalink
self.permalink = SecureRandom.base64(8)
end
users_controller.rb
def show
@user = User.find_by_permalink(params[:permalink])
end
def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers.page(params[:page]).per_page(5)
render 'show_follow'
end
users/_header.html.erb
<%= render 'users/followerstats' %>
users/_followerstats.html.erb
<a href = "<%= followers_user_path(@user) %>">
My Followers ( <%= @user.followers.count %> )
</a>
ユーザー/show_follow.html.erb
<div class = "container">
<%= render 'header' %>
<% provide(:title, @title) %>
<div class="row">
<div class="span12">
<h4><%= @title %></h4>
<% if @users.any? %>
<ul class="users">
<%= render @users %>
</ul>
<%= will_paginate %>
<% end %>
/div>
</div>