【问题标题】:Create a Text File From a Form Server Side Ruby on Rails从表单服务器端 Ruby on Rails 创建文本文件
【发布时间】:2013-12-05 00:32:24
【问题描述】:

我正在使用 Ruby on Rails 并有一个从用户输入中获取信息的表单。然后我想获取用户输入并将其写入服务器端的文本文件。我希望将文件保存在 /public/UserInput.txt 等位置。

有没有办法使用 Ruby on Rails 来做到这一点?还是我需要其他语言来执行此操作,例如 PHP?无论哪种情况,谁能给我一个例子来说明如何做到这一点?

提前致谢。

更新 我正在尝试的没有给我文本文件的代码是:

after_save :create_file 

def create_file 
parameter_file = File.new('C:\\parameter_file.txt', "w")   
parameter_file.puts(:parameter) 
end 

【问题讨论】:

  • 您的服务器是否有权写入该目录?当另一个用户想要保存文件并且您覆盖它时会发生什么?为什么不用open的块形式,或者更简单的File.write,这样文件就自动关闭了?未能关闭文件句柄最终将消耗您机器上所有可用的文件句柄并使您的代码崩溃。
  • 谢谢,这是一个权限问题,但是 :parameters 并没有给我表单中的用户输入

标签: ruby-on-rails ruby webforms text-files server-side


【解决方案1】:

这实际上并不是特定于 Rails 的问题。它可以用纯红宝石解决。

path = "/some/file/path.txt"
content = "data from the form"
File.open(path, "w+") do |f|
  f.write(content)
end

target 是您希望文件转到的位置,content 是您从表单中提取的任何数据。

【讨论】:

  • 是的,我看到了,但是如何将它合并到使用 ruby​​ on rails 构建的站点中?该代码会出现在我的视图或模型中吗?我对放置它的位置感到困惑。
  • 最好在您的模型中。您不希望视图中出现这种代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 2013-09-14
  • 2020-06-04
  • 2014-06-09
相关资源
最近更新 更多