2010-01-19 62 views
0

我是新的Ruby on Rails的,我想完成以下任务:LINK_TO代替按钮提交表单

我得带复选框(每行一个)的列表,我会喜欢有一个链接按钮(不是一个普通的按钮或提交),所以当我点击它时,我从控制器调用一个动作。

我的问题是:

  1. 我怎样才能调用具有的link_to控制器行动?
  2. 如何获取复选框的值(选中哪些值)和字段的值,以便我知道应用该操作的人员?我习惯于使用C#,并且在那里列表中有一个ItemDataBound方法,您可以轻松地从每行可以说出的地方获取该方法,但我无法在此处找到类似的东西。

如果这还不够清楚,我打算把一个例子:

比方说,我已经得到了下面的“屏幕”:

删除(链接)

文章ID |文章名称

chkbox1111吨恤

chkbox 2222条裤子

chkbox 3333靴子

现在,让我们说,我想删除的裤子和靴子。所以我会检查他们的复选框,然后按Delete。现在,我想在我的Articles控制器中使用方法delete_article(例如),然后获取这些检查文章的ID和名称,并删除它们。

感谢, 布赖恩

回答

2

我会将复选框包装在表单中,然后使用链接(使用javascript或将链接更改为表单按钮和样式作为链接)提交此表单。

Rails假定开箱即用REST风格,所以直接链接总是会在您的控制器上触及GET可访问的操作(通常是索引或显示)。 GET操作应该始终是幂等的。

+0

谢谢。我会去做。最后一个问题:如何将按钮的样式作为链接改变? – 2010-01-20 12:40:59

+1

这可能是另一个问题:P。您可以使用CSS设置输入字段的边框,背景色和文本颜色。 – 2010-01-21 07:33:11

2

可以使用的link_to标准的方式,检查出“的link_to”轨道文档。 复选框的值可以从params散列获得。 只需注意文档。

+0

谢谢。我阅读了文档,其中的一个例子如下: link_to“Profile”,:controller =>“profiles”,:action =>“show”,:id => @profile 在我的情况下, ID参数将无用,所以我没有通过它(我不知道我是否可以做到这一点),所以我正在做这样的事情: <%= link_to'做一些行动',:控制器= >'announcements',:action =>'some_method'%> 它有效地进入了Announcements控制器,但是到了我指定方法的Show动作。为什么? – 2010-01-19 23:42:36

+0

你有没有指定正确的方法?你应该尝试创建。 – 2010-01-21 02:02:25