2013-03-06 36 views
0

我有一個應用程序,用戶可以在其中設置一個文件夾來記錄筆記。以前我有一個隱藏的表單字段來存儲人員的ID誰創建它,即:Rails - 將鏈接中的參數傳遞給隱藏的表單字段的ID

<%=f.hidden_field 'user_id', :value => current_user.id %> 

但是,我現在需要添加一個'keyholder',誰擁有此文件夾的只讀訪問權限。我有一個鏈接列表,只有當用戶添加了一個文件夾或密鑰持有者可以爲他們設置一個鏈接時纔會出現。

密鑰持有者本身就是普通用戶,所以上面的代碼只會建立一個自己的文件夾,而不是他們正在訪問的帳戶的人。密鑰持有者有一個'access_id',它與他們可以訪問的帳戶的用戶ID相匹配。

如何設置它,以便表單捕獲正確的用戶ID?

什麼我試圖acheive是以下(這是不行的,但可能會給我的意思更好的主意):

<% if current_user.access.folder.nil? %> 
    <li><%= link_to 'Create a Folder', 
     new_folder_path(:user_id => current_user.access_id) %></li> 
<% end %> 

而且我需要在文件夾中改變什麼形成部分讓它接受這個用戶ID?謝謝!

+0

你爲什麼要保留user_id的隱藏字段?這對我來說似乎沒有必要。 – Catfish 2013-03-06 18:36:00

+0

另外,有什麼不工作呢?你有錯誤嗎? – Catfish 2013-03-06 18:36:34

+0

因爲該文件夾需要具有與其關聯的用戶。該鏈接本身會將我帶到右側頁面來設置文件夾,但user_id設置爲用戶,而不是設置爲其他用戶名的密鑰持有者用戶。 – ecs 2013-03-06 19:39:16

回答

0

你最好使用授權的寶石諸如此類cancan

+0

我在做,但沒有看到這將如何幫助我在這種情況下? – ecs 2013-03-06 18:29:54

0

我不知道我完全理解你想要做什麼,但不是保存在一個隱藏字段的用戶ID。只要在任何頁面上使用<%= current_user.id %>就好像你在做什麼。

然後,根據模型的設置方式,只需創建一個輔助方法來檢查用戶所在頁面的訪問權限。我假設您的幫手將檢查params[:id]params[:user_id]以獲取當前頁面。

相關問題