2011-04-10 75 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])

任何與用戶關聯的數據都將顯示在此處,並且您需要將數據庫表記錄與用戶連接以測試它是否顯示該記錄。