【问题标题】:Building a blog or FAQ section from YAML files only in Ruby on Rails? [closed]仅在 Ruby on Rails 中从 YAML 文件构建博客或常见问题解答部分? [关闭]
【发布时间】:2013-04-11 09:57:35
【问题描述】:

我刚刚完成了一个新的 Rails 应用程序的构建,现在我想构建一个简单(但多语言)博客风格的常见问题解答部分,其中包含一个 question、一个 answer 和一个 category 的条目。

有没有办法用 YAML 文件构建这种东西,还是我需要从头开始构建整个控制器和模型才能获得这种功能?

FAQ 部分将仅由 me 维护,因此可以选择使用 YAML 文件。

我的想法是这样的:

# faq.yml

faq:
  payment:
    entry1:
      question: "How can I pay?"
      answer: "You can pay by credit card or PayPal."
    entry2:
      question: "Who coded this app?"
      answer: "The best coder ever!"

这可以在 Rails 中完成吗?有人可以指点我的链接或教程吗?

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 yaml


    【解决方案1】:

    你可以去任何一种方式。您将需要控制器/视图功能,但不需要模型。如果你想使用上面的 YAML 代码,你可以这样读:

    # In your FaqController:
    @faq = YAML.load_file("#{RAILS_ROOT}/config/faq.yaml")
    
    # In index.html.erb
    <%- @faq['faq'].each do |subject, entries| %>
      <h1><%= subject %></h1>
      <%- entries.each do |entry| %>
        <h2><%= entry['question'] %></h2>
        <p><%= entry['answer'] %></p>
      <%- end %>
    <%- end %>
    

    当然,这可能比使用数据库驱动模型更容易出错且更难维护,您可能希望在应用程序的整个生命周期内缓存 YAML 文件以减少 I/O 操作。

    【讨论】:

    • 好的,看起来不错。谢谢。为什么这比数据库驱动模型更容易出错?
    • 我说它可能更容易出错。我这么说是因为您依赖于 YAML,并且没有对更改进行真正的输入验证。当然,语言环境文件也是如此,因此通过适当的测试,您将能够防止错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多