从link_to上的text_area_tag中提取文本

时间:2015-10-08 16:59:54

标签: ruby-on-rails ruby

所以现在我有一个弹出的模态,它有一个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从视图传递给控制器​​时,我仍然有点朦胧,所以也许这就是我搞砸的地方。

谢谢。

1 个答案:

答案 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 %>