【问题标题】:Can I have inputs without forms in a Rails view?我可以在 Rails 视图中输入不带表单的内容吗?
【发布时间】:2012-07-24 12:05:40
【问题描述】:

我想在我的页面上有几个复选框,以及一个访问这些复选框值的链接以传递link_to 帮助程序。我不想使用表单,因为视图本质上散布了许多链接,而且它自然看起来不像是带有一个逻辑提交按钮的表单。

我有类似的东西

 <% for p in @some_array %>
 <!--other stuff .... -->
 <input value=<%= p.id %> id=<%= p.id %> name="selected[]" type=checkbox>
 <!--other stuff .... -->
<%= link_to "View all selected thing(s)", :action => 'show_selected', :selected_things => selected[] %>

但它似乎无法识别存储输入的变量selected。它提高了

undefined local variable or method `selected' for #<#<Class:0x000001021b4a38>:0x00000102319a90>

【问题讨论】:

  • 您将 Ruby(服务器端,&lt;%= link_to ... %&gt;)与客户端(浏览器、表单和名称为 selected[] 的表单元素)混合在一起。没有你创造一个或框架魔法,就没有直接的联系。
  • 我想这是我的问题 - 可能是我没有清楚地解释自己。如果我想使用来自某个 html 元素的输入来发送到服务器端方法,而不是使用表单提交按钮,我该如何建立这样的连接。

标签: html ruby-on-rails forms model-view-controller


【解决方案1】:

我会说你的代码 sn-p 中的最后一行导致了错误:

<%= link_to "View all selected thing(s)", :action => 'show_selected', :selected_things => selected[] %>

因为 ruby​​ 抱怨 selected 没有被定义。

(虽然我不明白您为什么不想使用表单,因为将选择强制为您可以传递给链接的内容需要一些 javascript 魔法。)

【讨论】:

  • 谢谢。我知道错误来自这条线。如何定义用于复选框输入的变量?是否可以在不使用表单的情况下使用 link_to 中的输入?
  • 正如我所说,你需要一些 javascript 来对复选框做出反应,收集一些东西并从中构建一个请求(这使得这是一个 javascript 问题,这里不涉及任何轨道)但是到底为什么这样做你想在没有表格的情况下做吗?
  • 知道了。链接是静态构建的,输入框的值不能改变。
猜你喜欢
  • 2022-10-15
  • 2012-04-11
  • 2022-07-27
  • 2015-11-27
  • 2014-09-14
  • 2021-10-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多