Как создать форму для плагина rails-settings - PullRequest
7 голосов
/ 15 сентября 2011

У меня есть приложение Rails 3, для которого нужны определенные пользователем настройки. Я хотел бы использовать этот плагин https://github.com/ledermann/rails-settings. У меня это работает в консоли рельсов. Но у меня возникают проблемы с работой в форме. Я использую fields_for & attr_accessible? Если так, то мне не повезло.

Мне нужно добавить настройки для двух моделей:

Например, настройки, специфичные для пользователя,

user = User.find(123)
user.settings.color = :red
user.settings.color
# => :red

user.settings.all
# => { "color" => :red }

(Выше у меня нормально работает в консоли.)

но мне нужно администрировать их через стандартную веб-форму. Я хотел бы знать, как другие справляются с этим.

Спасибо.

1 Ответ

13 голосов
/ 17 ноября 2011

Что я сделал, так это добавил динамические установщики / получатели в мой класс User как таковой

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

При этом вы можете использовать «цвет», как и любой другой атрибут вашей пользовательской модели. Также очень просто добавить дополнительные настройки, просто добавьте их в список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...