19

Rails 3 uygulamasında hem yönetici yapılandırılabilir genel ayarları hem de kullanıcı tarafından yapılandırılabilir ayarlarına izin vermek için güncel bir ihtiyacım var.Raylar 3 Uygulama/Kullanıcı Ayarları en iyi uygulama?

Bu durum için iyi çalışan herhangi bir mücevher veya en iyi uygulama var mı?

Birkaç tane mücevher ve blog yayını buldum, ancak hepsi 2006-08'e dayanıyor ve artık devam ediyor. Herhangi bir işaretçi takdir edilecektir, teşekkürler.

Not: Serileştirilmiş karma yanıtla birlikte this question'u gördüm, ancak özel durumumda, veritabanını kullanıcıların ayarlarına göre sorgulama yeteneği gerekir - Bu durumda seri hale getirilmiş bir karmanın işe yarayacağını düşünmüyorum.

+1

Bunun için bir takip olarak, sadece sistem çapında yapılandırma arıyorsanız iyi görünüyor yeni bir seçenek var - https://github.com/paulca/configurable_engine –

+0

bunun için teşekkürler, harika bir mücevher gibi görünüyor. – Pierre

+0

[Ruby on Rails - Uygulama konfigürasyonunun saklanması] 'nın olası kopyası (http://stackoverflow.com/questions/2127960/ruby-on-rails-storing-application-configuration) – prograils

cevap

19

Yardım istedikten sonra her zaman olduğu gibi, aramamda da meyve yer alır. Georg Ledermann's fork of rails-settings bulundu, sadece ihtiyacım olanı yapacak gibi görünüyor.

+4

Ayrıca, [100hz'in Rails 3 fork] (https: //github.com/100hz/rails-settings) –

+2

Ve ayrıca [configurable_engine] (https://github.com/paulca/configurable_engine) – wik

+2

Ve [bu] (https://github.com/huacnlee/rails- (önbelleklenmiş önbellekleme) önbellekleme ile 110hz ray-ayarlarının bir çatalıdır :) –

4

Bu işlev için bir kitaplık arayacağından emin değilim.

Genel ayarlar için bir config/application.yml dosyası oluşturabilir ve onu environment.rb dosyasında okuyup bir APP_CONFIG global olarak ayarlayabilirim. Daha sonra, json-kodlanmış ayarlar karma ile kullanıcı tablosuna bir metin sütunu ekleyerek, bu ayarları kullanıcı bazında geçersiz kılardım. APP_CONFIG'i kaplayan ve çözülmüş kullanıcı ayarlarında derin bir birleştirme yapan kullanıcı modeline bir yöntem ekleyin.

Başka bir seçenek, bir ayar tablosu, bir user_id sütunu ve her ayar için sütun oluşturmak olabilir. Boş kullanıcı_dizisi olan bir satır genel ayarları temsil eder. Geçerli kullanıcı için bir satır varsa, sıfır olmayan tüm değerler genel ayarlar sırasını geçersiz kılar.

+0

Yanıt için teşekkürler. Yukarıdakilerin ikisi de kesinlikle geçerli yaklaşımlardır.Sonunda Rails 3 rails-settings gem çatalı ile gittim ve aynı zamanda birden fazla model tipine uygulanabilecek ayarlara izin verdim (diğerlerinin yanı sıra Yöneticiler, Kullanıcılar ve kullanıcıların bireysel Auditions ayarları gibi global ayarlara sahibim)). –

+1

Gemide kabul edilen cevapta gemide çok fazla sorun vardı 3.2. Bu yalnızlık, birkaç dakika içinde koşuyordum. Veritabanı sütunum için YAML serileştirme yaptım ve burada belirtilen bir başlatıcıyı http://stackoverflow.com/questions/592554/best-way-to-create-custom-config-options-for-my-rails-app – Kansha

2

Ayrıca https://github.com/railsjedi/rails_config da bakmak isteyebilirsiniz.

  • Küresel settings.yml
  • Per-çevre ayarları dosyaları (ayarları/development.yml, ayarları/production.yml vs.)
  • Yerel ayarlar dosyaları (settings.local.yml: birçok özellik bulunuyor arasında vb ayarları/development.local.yml,)
  • Gömülü ERB destek
  • raylar 3/Padrino/Sinatra destek raylarının 4 için
0

, kullandığınız takdirde postgresql, sadece bir seri hale getirilebilir öznitelik gibi HStore kullanabilirsiniz, ancak SQL sorguları ile yaparsınız.

Raylar 3 için activerecord-postgres-hstore gem'i kullanabilirsiniz.