我正在构建一个应用程序,公司可以在其帐户下添加多个域。
我想要达到的目标是:当域created
时,在我的public/domains
文件夹中,我想创建一个带文件夹名称的新文件夹 => domain id
并添加具有相同命名约定的.txt
文件。
示例:
Public // This is public folder in Rails
--- domains
---- 2 // This is domain ID
--- 2.txt
我现在拥有的:
class Domain < ActiveRecord::Base
def create_folder
dir = Dir.mkdir("#{Rails.root}/public/domains/#{self.id}")
file = File.dirname("#{Rails.root}/public/domains/#{self.id}/#{self.id}.txt")
end
end
这会创建文件夹,但不会创建.txt
文件。
答案 0 :(得分:0)
filename = Rails.root.join("/public/domains/#{id}/#{id}.txt")
File.open(filename, 'wb') do |file|
file << "My content"
file << "More content"
end
无法创建文件。
你想:
require 'fileutils'
id = 123
filename = "/tmp/public/domains/#{id}/#{id}.txt"
FileUtils.mkdir_p(File.dirname(filename))
File.open(filename, 'wb') do |file|
file << "My content"
file << "More content"
end
请务必在
之前创建目录至于你的用例:
不要使用文件。不要把它公开存放。如果需要,请使用Redis或类似产品。但首先尝试一下,如果你的数据库无法应对负载。或者你试过并达到极限?
请注意 / public 中的所有内容都是公开,这意味着可以通过您的网络服务器访问它。
非Rails示例:
$('.js-stars *').on('click', function(event) {
var count = $(this).data('stars');
alert(count + ' star(s) selected');
event.stopPropagation();
});