Rails - 将link_to中的参数传递给id的隐藏表单字段

时间:2013-03-06 17:29:29

标签: ruby-on-rails forms link-to

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

2 个答案:

答案 0 :(得分:0)

您最好使用授权gem,例如cancan

答案 1 :(得分:0)

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

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