Bir projede state_machine (https://github.com/pluginaweek/state_machine) kullanıyoruz ve bir durum seçmemize izin veren bir seçim sunmak istiyoruz. (bu arama için değil, ayar için). Tüm olası eyaletleri listelemenin bir yolunu bulamıyorum. Elbette bunu yapmanın otomatik bir yolu olmalı, bir yerdeki bir metin listesini kodlamak zorunda kalmamalı. Teşekkürler!state_machine durumlarının listesini alın
cevap
şey gibi: (Ben sürekli bu cevap arıyorum çünkü ve her zaman bu sayfaya geri gelip)
User.state_machine.states.map &:name
Sadece bu eklemek bir için durumlarını listelemek için çalışıyorsanız, devlet makinesini vererek, şunu deneyin:
Discussion.state_machines[:name_of_state].states.map &:name
Teşekkür ederim, bu daha iyi. Kabul edilen cevap sadece tahmin ettiğim varsayılanları işliyor ve özel alanım "durumum" için eyaletlere ihtiyacım vardı. Tekrar teşekkürler! –
Bu hattın, sınıfınızda kullanıyorsanız, durum makinesi bildirimlerinden sonra geldiğinden emin olun. –
olarak farklılık devlet alanını isim, bu tür publish_status olarak
Article.state_machines[:publish_status].states.map &:name
Teşekkürler! Bu hile yapar. – phil