所以现在我有一个弹出的模态,它有一个db查询中的电子邮件列表。我希望能够做的是点击link_to,从text_area中提取信息并在我的控制器中使用它。
我认为问题的一部分可能是我现在将路线设置为现在,但我不知道将它设置为put或post会做什么,因为我实际上并没有将任何东西保存到数据库。
以下是展示页面中我的表单的代码:
<%= text_area_tag 'test_area', Query.collect(&:email).join(", "), :style => 'width:100%; height:200px;' %>
<%= link_to 'Send Mail', admin_send_test_mail_path, :class => "btn btn-default" %>
这是路线:
get 'send_test_mail', to: 'my_controller#send_test_mail', as: :send_test_mail
这是控制器:
def send_test_mail
puts params[:test_area] #Doesn't output anything
NotificationMailer.test_email_stuff.deliver
redirect_to my_path
end
任何帮助将不胜感激。当谈到将params从视图传递给控制器时,我仍然有点朦胧,所以也许这就是我搞砸的地方。
谢谢。
答案 0 :(得分:1)
您需要将其放入表单并使用submit_tag而不是link_to:
<%= form_tag send_test_mail_path do %>
<%= text_area_tag 'test_area', Query.collect(&:email).join(", "), style: 'width:100%; height:200px;' %>
<%= submit_tag 'Send Mail', class: "btn btn-default" %>
<% end %>
如果您真的想使用link_to,那么您可以使用js:
实现此目的<%= form_tag send_test_mail_path do %>
<%= text_area_tag 'test_area', Query.collect(&:email).join(", "), style: 'width:100%; height:200px;' %>
<%= link_to 'Send Mail', '#', class: "btn btn-default", onclick: "$(this).closest('form').submit()" %>
<% end %>