2011-04-10 77 views
0

我有一个为Users表设置的模型视图控制器。但是,默认值仅为每个用户(用户/ 1)提供1个用户特定页面。但是,我需要为每个用户指定另一个用户特定的页面(users/1/profile)?我搜索了很多关于如何创建它的资源。你如何去创造这个?谢谢!Ruby on Rails将新页面添加到现有模型

+1

在查看参考资料之前应避免使用Google搜索:http://edgeguides.rubyonrails.org/ – apneadiving 2011-04-10 16:17:43

+1

@apneadiving请不要链接到边缘指南,因为它们可能不会反映当前发行版本。发布版本指南在这里:http://guides.rubyonrails.org/ – 2011-04-10 18:28:27

回答

1

您将添加一个新的途径,以你的config/routes.rb文件

match "users/:id/profile" => "users#profile" 

然后您匹配的控制器动作和视图。

你的控制器可能看起来像

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

而且你的观点将在意见/用户/ profile.html.erb

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

你需要创建一个默认的个人资料页,然后再使用每个用户
的会话ID创建个人资料页面记录和用户之间的关联

DEF轮廓
@user = User.find(会话[:USER_ID])

任何与用户关联的数据都将显示在此处,并且您需要将数据库表记录与用户连接以测试它是否显示该记录。

相关问题