作者polarpolar (破啦贝尔)
看板Ruby
标题Re: [问题] web application 的配置...
时间Fri Jan 12 00:34:08 2007
※ 引述《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