2017-03-07 77 views
0

我在我的應用程序中有一個管理頁面,其中包含所有用戶的電子郵件列表。當我點擊電子郵件的鏈接時,我想查看該用戶的個人資料。我得到正確的URL,但是我的if語句不會呈現用戶的配置文件,因爲它檢查頁面是否爲current_user。如何顯示連接到電子郵件的用戶個人資料?如何顯示其他用戶的演示頁面?

這是目前我的代碼:

<% if current_page?(current_user) %> 
    <% render 'users/show' %> 

我需要這樣的事,但它不會工作:

<% if current_page?('/users/id#') %> 
    <% render 'users'show' %> 

回答

0

你需要傳遞的選項:控制器,動作等PARAMS

<% if current_page?(controller: 'users', action: 'show', id: current_user.id) %> 
    <%= render 'users/show' %> 

您還可以利用路線幫手

<% if current_page?(user_path(current_user)) %> 
    <%= render 'users/show' %> 
+0

這兩個工作對我來說當我鍵入我想要去的用戶的URL像/ users/1或users/2 --->但是當我去我的用戶索引頁時它們不工作:/ users/--->我得到一個URLGenerationError id:nil – sorcalin0x11

+0

所以,只需刪除'id'然後 –

0
<% if params[:controller] == 'users' && params[:id] == curent_user.id %> 
    <%= render 'users/show' %> 
<% end %> 
0

你需要傳遞的選項:控制器,動作和其它PARAMS

<% if current_page?(controller: 'users', action: 'show', id: current_user.id) %> 
    <%= render 'users/show' %> 
+0

這隻顯示current_user的配置文件頁面,但不能渲染任何其他用戶。我不知道該給id做些什麼: – sorcalin0x11

0

我認爲你需要做的是:

<% if current_user && current_page?(user_path(current_user)) %> 
    <%= render 'users/show' %> 

它會檢查是否有一個連接的用戶,並檢查這是否是正確的頁面。

相關問題