我有这样的表格:
<%= 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,但参数没有保存到它,而且它没有重定向,我只是在/ submit上找不到404
答案 0 :(得分:2)
您的表单和路线不正确。
<%= form_tag('/form/submit') %>
默认方法是POST,因此您无需指定它。
应根据方法更改路线:
post 'form/submit', to: 'static_pages#save'
PS:我相信你应该使用RESTful,但我看不到你的应用程序的全貌。
PPS:你在重定向时不应该进行渲染。
PPPS:在你的方法中不要require 'csv'
,而是在文件的最开头,在你的类定义之前。