7
いくつかのユーザー定義設定が必要なRails 3 Appがあります。このhttps://github.com/ledermann/rails-settingsプラグインを使用したいと思います。私はレールコンソールで作業しています。しかし、私はフォームで働くことに問題があります。私はfields_for & attr_accessibleを使用しますか?もしそうなら、私は運がない。rails-settingsプラグインのフォームを作成するには
私は2つのモデルの設定を追加する必要が:
たとえば、ユーザーに固有の設定、
user = User.find(123)
user.settings.color = :red
user.settings.color
# => :red
user.settings.all
# => { "color" => :red }
(上記はコンソールで私のために正常に動作します。)
ですが、私は標準的なWebフォームを使ってそれらを管理する必要があります。私は他の人がこれをどのように扱っているのか知りたいです。
ありがとうございました。そのことを、このような
class User < ActiveRecord::Base
has_settings
def self.settings_attr_accessor(*args)
args.each do |method_name|
eval "
def #{method_name}
self.settings.send(:#{method_name})
end
def #{method_name}=(value)
self.settings.send(:#{method_name}=, value)
end
"
end
end
settings_attr_accessor :color, :currency, :time_zone
end
としての私のUserクラスに動的なセッター/ゲッターを追加している
優秀な回答 - これはどうやって行うのか不安でしたが、これは魅力的です。レール設定をきれいにする - 多くの感謝!宝石作成者は、彼のGithub Wikiの例としてこれを投稿する必要があります。私の唯一の変更は、関数定義と関数呼び出しをprivateにすることでした。 – MikeH
通常の変数のような形でこれを使用するたびに、次のように表示されます: '保護属性を大量に割り当てることはできません:color、currency、time_zone'。何か案は? – toobulkeh
私はこれを試しても "間違った引数の数(0のために1)"というエラーが出てくる – scientiffic