保存表单结果到Rails的一个文本文件
问题描述:
我有这样的形式:保存表单结果到Rails的一个文本文件
<%= form_tag(:action => "save", method: "post") do %>
<%= label_tag(:email, "Email") %>
<%= text_field_tag(:email) %>
<%= submit_tag("Submit") %>
<% end %>
我需要将结果保存到一个文件,我目前使用CSV但它并不真正的问题是什么文件类型:
def save
require "csv"
CSV.open "output.csv", "a+" do |csv|
csv << [ "#{params[:email]"]
end
render :none
redirect_to "/thanks"
end
而在我的路线,我有:
get 'form', to: "static_pages#form"
get 'form/submit', to: "static_pages#save"
get 'form/thanks', to: "static_pages#thanks"
在生成CSV的时刻,但参数不救它,一个d也它不剂量重定向,我只是得到404未找到/提交
答
您的表单和路线不正确。 <%= form_tag('/form/submit') %>
默认方法是POST,所以你不必指定它。
路线应根据上述方法进行更改: post 'form/submit', to: 'static_pages#save'
PS:我认为你应该去RESTful的,但我没有看到你的应用程序的全貌。
PPS:当你重定向时你不应该渲染。
PPPS:不要require 'csv'
在您的方法中,但在文件的开头,在您的类定义之前。