将text_field_tag的值传递给Rails中的控制器

时间:2016-07-14 16:52:47

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

我有一个text_field_tag,其值要传递给控制器​​。

<%= text_field_tag 'amount', 'Enter amount' %>

我已经有一个传递其他参数的link_to标签,我也想将此文本框的值传递给我的控制器操作。

<%= link_to "Do it", do_it_path(id: some.id, detail: card.summary) %>

有人可以建议一些可以实现的方法吗?我想避免使用表单,因为它只是一个字段,我希望保持简单。

1 个答案:

答案 0 :(得分:2)

由于text_field_tag输入是在加载DOM之后,您可能希望使用JavaScript将text_field_tag的值附加到链接点击事件。以下使用jQuery:

<%= text_field_tag "amount", "Enter amount", class: "amount_field" %>

<%= link_to "Do it", do_it_path(id: some.id, detail: card.summary), class: "do_it_link" %>

<script>
  $(".do_it_link").click(function() {
    $(this).attr("href", function() {
      return this.href + "&amount=" + $('.amount_field').val();
    });
  });
</script>

但你真的应该使用一个表格。它更简单,更安全。

<%= form_for @something do |f| %>
  <%= f.text_field :amount, placeholder: "Enter amount" %>
  <%= f.hidden_field :detail, value: card.summary %>
  <%= f.submit "Do it" %>
<% end %>