0

I'd like to be able to have a text file (which is not in the developer's control of the content) and have my code pick entries from that file and display them in the web app (or do something else with them)

for example, this text file could be a list of people, or famous quotes that keep displaying on the screen, in order or randomize.

my question is what is the easiest way of implementing this? Should I put it in XML and parse it? put it in YAML? Where do I do the parsing? in the controller or in the initializers?

4

2 に答える 2

1

コンテンツが変更されたときにアプリを再デプロイできる場合は、それをYAMLファイルに入れます。YAMLは、Railsコードのいくつかの場所ですでに使用されています。宝石を追加する必要はありません。JSONを使用することもできます。あなたがより読みやすいと思うものに応じて。

再デプロイせずにコンテンツを変更する場合は、データをデータストアに配置し、変更するためのフォームを作成します。

于 2012-10-22T07:02:14.507 に答える
1

技術に詳しくない人にとっては、プレーン テキスト ファイルに勝るものはありません。いくつかの単純な構造を強制します。

  • エントリごとに 1 行、または
  • エントリ間の空白行、または
  • 認識できるトークンで始まるタイトル (例: ==)

プレーン テキスト ファイルの読み取りの例:

data = File.read('/path/to/file.txt')
data.lines.each do |line|
  puts "Read line: #{line}"
end

# or split by an empty line (btw, non-technical users can insert spaces in blank lines)
# also, remove leading and trailing whitespace from entries (i.e the newlines)
entries = data.split(/^\s*$/).map(&:strip)

もう 1 つのオプションは、いくつかのマークダウンを使用し、解析されたテキストをコンテンツに使用することですが、これによりRedCarpetのような新しい宝石がプロジェクトに導入されます。

于 2012-10-22T07:19:41.573 に答える