2010-11-02 19 views
9

Ben onun buJeneratörler koddan nasıl çağrılır?

rails generate ead_document TechnicalOpinion --document_type_id=1 

gibi lanse Bu model ve göç yaratır konsolundan, kendi jeneratör yazdı. Jeneratör sistem komutunu kullanmadan kontrol cihazımdan jeneratörü çalıştırmak istiyorum. Bunu yapmanın bir yolu var mı? Ruby

cevap

15

Çözüm oldukça basit gibi görünen:

kontrolörde Bu kod

Rails::Generators.invoke("ead_document", [@document_type.table_name.classify, "--document_type_id=#{@document_type.id}"]) 

bu aynıdır konsol

rails generate ead_document TechnicalOpinion --document_type_id=1 
+3

Bir soruya cevap vermek yerine API olayıyla ilgili yeni bir soru açabilir misiniz? Bu şekilde soruları ve cevapları aranabiliriz. –

0

sistem komutu çalıştırmak için birkaç farklı yolu vardır

string = `ls` 
# runs command and returns its STDOUT as a string 
string = %x{ls} 
# ditto, alternative syntax 

system "ls" 
# runs command and returns its exit status; its STDOUT gets output to our STDOUT 

print `ls` 
#The same, but with back quotes 

exec "ls" 
# replace current process with another 

# call system command and read output asynchronously 
io = IO.popen('ls') 
# ... later 
io.each {|line| puts line} 
+2

Komut satırı komut dosyasını çalıştırarak bunu yapabileceğimi biliyorum. Bunu ruby ​​kodundan istiyorum. Jeneratör bir sınıftır, bu yüzden bu sınıfın örneğini oluşturmak ve üzerinde bir yöntem aramak istiyorum. –

İlgili konular