我有一个应用程序,用户可以在其中设置一个文件夹来记录笔记。我之前使用的是一个隐藏的表单字段来存储创建它的人的ID,即:
<%=f.hidden_field 'user_id', :value => current_user.id %>
但是,我现在需要添加一个对此文件夹具有只读访问权限的“keyholder”。我有一个链接列表,只有在用户添加了文件夹时才会出现,或者密钥持有者可以为它们设置一个链接。
密钥持有者本身就是普通用户,因此上述代码只会设置一个具有自己ID的文件夹,而不是他们正在访问其帐户的人。密钥持有者的“access_id”与其可以访问的帐户的用户ID相匹配。
如何设置它以便表单捕获正确的用户ID?
我正在努力实现以下目标(这不起作用,但可能会更好地了解我的意思):
<% 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 :(得分:0)
您最好使用授权gem,例如cancan
答案 1 :(得分:0)
我不确定我完全理解你要做的是什么,而不是将用户ID存储在隐藏字段中。只需在任何页面上使用<%= current_user.id %>
就像您正在做的那样。
然后,根据模型的设置方式,只需创建一个帮助方法来检查用户所在页面的访问权限。我假设您的帮助者会检查params[:id]
或params[:user_id]
以获取当前页面。