保存表单结果到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'在您的方法中,但在文件的开头,在您的类定义之前。