【问题标题】:Saving form results to a text file in Rails将表单结果保存到 Rails 中的文本文件
【发布时间】:2014-08-27 14:26:28
【问题描述】:

我有这个表格:

<%= 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

【问题讨论】:

    标签: ruby-on-rails forms file controller


    【解决方案1】:

    您的表格和路线不正确。 &lt;%= form_tag('/form/submit') %&gt; 默认方法是 POST,所以你不必指定它。

    应该根据方法更改路线: post 'form/submit', to: 'static_pages#save'

    PS:我认为你应该使用 RESTful,但我没有看到你的应用程序的全貌。

    PPS:重定向时不应该渲染。

    PPPS:不要在你的方法中require 'csv',而是在文件的最开始,在你的类定义之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      相关资源
      最近更新 更多