2010-10-25 58 views
0

我有一个请求访问我的应用程序的用户列表。我必须总是在Rails的表格界面中使用表单吗?

它们出现在一个表视图中:

<table> 
    <thead> 
     <th>Company</th> 
     <th>First Name</th> 
     <th>Last Name</th> 
     <th>Email</th> 
     <th>Role</th> 
     <th>Action</th> 
    </thead> 
    <% for ar in @brand.access_requests %> 
     <% user = ar.user %> 
     <tr id="user_<%= user.id %>"> 
      <td><%= user.company %></td> 
      <td><%= user.first_name %></td> 
      <td><%= user.last_name %></td> 
      <td><%= user.email %></td> 
      <td><%= collection_select :role, :id, Role.all, :id, :name %></td> 
      <td><%= link_to "Create", brand_responsibilities_path(@brand), { :remote => true, :method => :post } %></td> 
     </tr> 
    <% end %> 
</table> 

所以我想为每个用户分配一个角色,然后批准该用户。

显然这是行不通的,因为我不知道如何从我的link_to中引用“role_id”字段。

如何在link_to中包含来自另一个字段的值?有没有办法做一个“:”或类似的东西?我想通过任何选择的选择框:

brand_responsibilities_path(@brand) 

我知道,如果我创建了每一个单行的形式,它的工作,但就是矫枉过正,或Rails的方式? 任何帮助都非常感谢。

+0

是否有一个窗体标签在这里的某处?我看到你通过链接发布,但没有看到你正在序列化表单数据。你使用Javascript吗?我错过了什么? – 2010-10-25 19:31:14

+0

这就是史蒂夫,我没有序列化它。我最初只想在link_to中传递参数,但我不知道如何在link_to中使用Javascript。 – AKWF 2010-10-25 19:46:57

回答

1

我肯定会使用表格。发生在我身上的唯一方法是使用链接进行此操作。显然,当你做link_to:method =>:post时,Rails使用javascript!创建一个表单。所以我认为使用这个表格肯定更干净:

<% form_for user do |f| %> 
    <%= f.collection_select :role_id, Role.all, :id, :name %> 
<% end %> 
+0

这里唯一的问题是我在哪里把表单提交按钮/链接?我希望它在另一列。在HTML标签中允许将表单嵌入到TD标签范围之外的表格中? – AKWF 2010-10-25 19:48:04

+0

将表格粘贴在表格外。您可以使用JavaScript获取链接并触发表单的提交操作。我不知道你是否正在使用jQuery的Prototype,但无论如何,只需设置一个'click()'处理程序来观察链接。然后在链接处理程序中,您提交表单。然而......这可能会对可达性有些敌意。这是你的设计要求。 – 2010-10-25 19:54:17

+0

好的,退后一步,想着......你想让每一行都有一个单独的表格。我的解释是,只要它完全包含在TD中,就可以将表格放在表格单元格中。如果你想要每行的表单,那就行了。否则,就像我之前说过的那样,将负载转移到Javascript来确定提交的内容。 – 2010-10-25 19:58:35

相关问题