如何使用外部数据在after_create上构建记录

时间:2015-11-21 14:43:53

标签: ruby-on-rails

我的帐户模型

IF (SELECT COUNT(*) FROM players WHERE email = (:e) > 0)
            INSERT IGNORE INTO roster 
                (date, teamId, playerId)
            (:d), (:t), SELECT id FROM players WHERE email =(:e)
        ELSE
        BEGIN
         .. // havent got to this part yet. it follows the same logic as the one before
        END

这很有效。但是,我需要has_many :articles after_create :generate_default_articles def generate_default_articles article = articles.build(:title => 'User guide', :content => 'This is fake content', :author => 'Admin') article.save true end 更复杂,而且比一些单词更长,即一个简单的html页面。所以我想把这些内容放在外部文件中。我该怎么做呢 ?我应该使用哪种格式的文件?

回答后编辑

下面是我的最终代码,使用rii的答案和I18n的标题:

content

1 个答案:

答案 0 :(得分:1)

这里有几个选项。如果content属性是文本字段,则可以通过打开存储在系统中的文件来存储所有文本内容。您拥有的另一个选项是使用像carrier_wave或paper_clip这样的gem,并使用gem存储对文件的引用:https://github.com/carrierwaveuploader/carrierwave

https://github.com/thoughtbot/paperclip

宝石路线可能是最灵活的方式。

现在,如何在Ruby中打开文件?好吧,File类是你的朋友:

content = File.open("your_file.txt", "r+")
file.close

就文件类型而言,如果它只是您正在存储的文本,那么它应该是.txt或甚至是.html文件。您可以通过执行以下操作来访问文件路径:

file = "#{RAILS_ROOT}/public/html_file/html_file1.html"

希望有所帮助。