我正在尝试将用户输入传递到link_to参数中。我知道您通常使用表单,但在这里我没有将这些参数链接到特定模型,所以我只想访问用户输入,然后在用户单击链接时将其传递给参数。
像这样:
Ask for user input - <div><%= date_field :date%></div>
然后在参数中传递它 -
<td><%= link_to "Send", controller_func_path(date: 'date_field value') %></td>
您无需将表单链接到模型即可发送输入数据。您可以使用表单发送输入数据,如下所示:
foo.html.erb
<%= form_with url: boo_action_path do |form| %>
<%= form.text_field :foo %>
<%= form.submit 'Send' %>
<% end %>
foo_controller.rb
class FooController < ApplicationController
def boo
foo_input_value = params[:foo]
end
end
Demir 是对的,用普通形式发送数据更实用。但是,如果动态更改链接是一项严格的要求,则可以使用javascript执行此操作:
<script type='text/javascript'>
function changeLink() {
date = document.getElementById('date_changeable').value;
targetHref = document.getElementById('tochange')
baseLink = targetHref.dataset.baseLink
document.getElementById('tochange').href = baseLink + date;
}
</script>
<%= date_field 'date', 'changeable', onchange: 'changeLink()' %>
<td><%= link_to "Send", 'http://example.com', data: { base_link: 'http://example.com' + '/' }, id: 'tochange' %></td>