Re: [問題] web application 的配置...
※ 引述《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
--
╭───╮╭───╮┬ ╭───╮╭───╮2
│ ││ ││ │___│├───╯
├───╯╰───╯╰───│ ││ \
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.98.33
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章