Rails, используйте содержимое файла в контроллере - PullRequest
4 голосов
/ 07 апреля 2010

У меня есть файл в каталоге config, скажем, my_policy.txt. Я хочу использовать содержимое этого файла в моем контроллере как простую строку.

@policy = #content of /config/my_policy.txt

Как достичь этой цели, предоставляет ли Rails собственный способ сделать это?

Спасибо

Ответы [ 3 ]

9 голосов
/ 07 апреля 2010

Rails не предоставляет пути, но Ruby делает:

@policy = IO.read("#{Rails.root}\config\my_policy.txt")
4 голосов
/ 07 апреля 2010
@policy = File.read(RAILS_ROOT + '/config/my_policy.txt')

Чтобы также кэшировать содержимое (если вы не хотите читать его каждый раз, когда используется переменная):

def policy
  @@policy ||= File.read(RAILS_ROOT + '/config/my_policy.txt')
end

Если вам нужно что-то более элегантное для конфигурации, отметьте configatronic .

0 голосов
/ 07 апреля 2010

Считать файл как строку?!

def get_file_as_string(filename)
  data = ''
  f = File.open(filename, "r") 
  f.each_line do |line|
    data += line
  end
  return data
end

##### MAIN #####

@policy = get_file_as_string 'path/to/my_policy.txt'

# print out the string
puts @policy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...