LokkaにWordPressでいうwp_options的なサイト固有で何でも入れとける場所を作りました。(Lokkaではscript/console的なのは irb -r init.rbで出来ます)

% irb -r init.rb
>> Option.aksmet_key
=> nil
>> Option.aksmet_key = 'hoge'
=> "hoge"
>> Option.aksmet_key
=> "hoge"
>> Option.all
=> [#<Option @name="aksmet_key" @value=<not loaded> @created_at=Sun, 31 Oct 2010 00:01:02 +0900 @updated_at=Sun, 31 Oct 2010 00:01:02 +0900>]

lib/lokka/option.rb from komagata's lokka - GitHub

ソースは上記の通りです。name / valueしか持たないテーブルにmethod_missingでいれているだけです。

上の例の様にプラグインで値を保存したい時に、プラグイン毎にイチイチテーブルを作るまでもないもの(akismetのkeyとか)を保存する場所として用意しました。

% irb -r init.rb
>> @site = Site.first
=> #<Site @id=1 @title="Test Site" @description="description..." @theme="default" @created_at=Sun, 31 Oct 2010 00:06:39 +0900 @updated_at=Sun, 31 Oct 2010 00:06:39 +0900>
>> @site.akismet_key
=> "hoge"

また、Siteクラスのインスタンスから代入以外はOptionにproxyするようにしました。

追記:optionsテーブルが増えたので最新にした方は $ bundle exec rake db:migrate お願いします。

Comments


Option