Re: [問題] web application 的配置...

看板Ruby作者 (破啦貝爾)時間17年前 (2007/01/12 00:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《xamous (一天死去一點)》之銘言: : 其實這不是只關於 ror 的問題,應該是關於 web application 的慣例問題 : 一般我們在開發 web app 的時候可能會有一些關於 web app 的設定 : 像是 blog 的 title、網站名稱、每頁顯示項目數之類的 : 像這種東西應該放在資料庫裡好呢?還是另外寫一個檔案 include 好呢? : 以往在寫 php 的時候我都是另外有一個檔案來做這些設定 : 在需要的時候 include 進來,像這種作法有沒有什麼不好的地方呢? : 在 rails framework 裡面有沒有關於這方面的慣例? : 寫在 environment.rb 裡面好嗎? : 謝謝指教... m(_ _)m RubyOnRails 跟 PHP 很不同的一點在於 Configuration 只有在該 Rails Application 啟動時載入, 一旦這些 config 需要更動的話得重新啟動 Web Server 會造成一些麻煩, 所以原則上這些可變動的資料還是儲存在資料庫裡面, 只要管理者更動設定,再由 Controller 去讀取資料庫中的 configs 不需 restart web server, 使用者們立即就可看到改變, 也就是 Rails 很看重的 on-the-fly 概念。 --- 當然這樣子做也不是沒有缺點啦, 存取資料庫的次數也會因此變多, 聽起來蠻致命的, 但我認為在 Rails 必須常常面對大量的資料存取之下, 這無傷大雅 ... XD 喔,Model 方面的話, 大概就類似這個樣子吧: class Blog < ActiveRecord::Base has_one :configure end class CreateConfigure < ActiveRecord::Migration def self.up create_table :configures do |t| t.column :blog_id, :integer t.column :title, :string t.column :per_page, :string end end # ... 下略 end 在 Controller 可以用 @blog.configure['title'] 取出該 Blog 的標題 當然依情況可以對 configure 作各種變化, 如果您不確定會有多少可 configure 的選項的話, 可以用 blog_id, key, value 三個欄位來存各種想要的設定值, 如果只有一個 Blog 的話, 就可以不需要 Blog 這個 Model, 而只留 Configure ...... --- 哇啊,話太多了 >_< 希望不要把你搞糊塗了 XD -- ╭───╮╭───╮┬   ╭───╮╭───╮ │   ││   ││   │___│├───╯ ├───╯╰───╯╰───│   ││   \ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.98.33
文章代碼(AID): #15fcS4xK (Ruby)
文章代碼(AID): #15fcS4xK (Ruby)