我有一个text_field_tag,其值要传递给控制器。
<%= text_field_tag 'amount', 'Enter amount' %>
我已经有一个传递其他参数的link_to标签,我也想将此文本框的值传递给我的控制器操作。
<%= link_to "Do it", do_it_path(id: some.id, detail: card.summary) %>
有人可以建议一些可以实现的方法吗?我想避免使用表单,因为它只是一个字段,我希望保持简单。
答案 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 %>