对于我的 Rails 应用程序,我正在尝试为我的用户创建一个随机永久链接,因此它不是 localhost:3000/users/:id,而是 localhost:3000/users/permalink。
我已关注此处发布的帖子: 如何使 ID 成为 Rails 中的随机 8 位字母数字?
在发布之后,我已经能够为我的用户创建随机永久链接列和页面,但无法让子页面正常工作。对于我的用户,我目前有子页面:关注者等。
问题:页面当前路由到 localhost:3000/users/ :id
/followers 等。但是有人知道如何修复 routes.rb 以便我也可以将这些页面路由到 localhost:3000/users/ permalink
/followers 等。
路线.rb
match 'users/:permalink' => 'users#show', :as => "show_user"
resources :users do
member do
get :followers
end
end
用户.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
用户/_header.html.erb
<%= render 'users/followerstats' %>
用户/_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>