0

我有一个应用程序,用户可以在其中设置一个文件夹来保存笔记。我之前有一个隐藏的表单字段来存储创建它的人的 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?谢谢!

4

2 回答 2

0

You'd better use an authorization gem such like cancan

于 2013-03-06T18:18:35.407 回答
0

我不确定我是否完全理解您要执行的操作,而不是将用户 ID 存储在隐藏字段中。只需<%= current_user.id %>在任何页面上使用,就像您在做的那样。

然后根据您的模型的设置方式,只需创建一个帮助方法来检查用户所在页面的访问权限。我假设您的助手将检查params[:id]params[:user_id]获取当前页面。

于 2013-03-07T14:58:17.797 回答