Ruby on Rails向现有模型添加新页面

时间:2011-04-10 16:08:17

标签: ruby-on-rails ruby web-applications

我为Users表设置了模型视图控制器。但是,默认情况下,每个用户只有1个用户特定页面(users / 1)。但是,我需要为每个用户(users / 1 / profile)另一个用户特定页面?我用Google搜索非常努力,无法找到有关如何创建它的任何资源。你是怎么创造这个的?谢谢!

3 个答案:

答案 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])
结束

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