我为Users表设置了模型视图控制器。但是,默认情况下,每个用户只有1个用户特定页面(users / 1)。但是,我需要为每个用户(users / 1 / profile)另一个用户特定页面?我用Google搜索非常努力,无法找到有关如何创建它的任何资源。你是怎么创造这个的?谢谢!
答案 0 :(得分:2)
您可以在此处以宁静的方式找到完整的详细信息: http://guides.rubyonrails.org/routing.html#adding-more-restful-actions
这是imho,比提供匹配路由更好,因为您可以使用restful路由生成的命名路由。另一种选择是提供一条命名路线而不是宁静的路线,但坚持这样做的“Rails”方式可以在您需要重构时提供更少的麻烦。
以下是您想要使用的代码:
#Routes
resources :users do
member :profile
end
#Controller Action
def profile
@user = User.find(params[:id])
end
#View link
<% @users.each do |user| %>
<%= link_to "Profile", profile_user_path(user) %>
<% end %>
答案 1 :(得分:1)
您可以在config / routes.rb
中添加新路由 match "users/:id/profile" => "users#profile"
然后你的匹配控制器动作和视图。
您的控制器可能看起来像
def profile
@user = User.find(params[:id])
end
您的观点将在views / users / profile.html.erb
中答案 2 :(得分:1)
您需要先创建默认配置文件页面,然后使用每个用户的会话ID在配置文件页面记录和用户之间创建关联
def profile
@user = User.find(session [:user_id])
结束
与用户关联的任何数据都将显示在此处,您需要将数据库表记录与用户连接以测试它是否显示该记录。