2011-07-11 68 views

回答

11

這可能聽起來很愚蠢,但是聽我說......當我想要開始乾淨的時候,我自己也做了幾次這樣的事情。下面是一個腳本,將讀取你的架構和產生必要的生成命令,以重現:

require 'rubygems' 
require 'active_support/core_ext' 
schema = File.read('db/schema.rb') 
schema.scan(/create_table "(\w+)",.*?\n(.*?)\n end/m).each do |name, ddl| 
    puts "rails generate scaffold #{name.classify} " + 
    ddl.scan(/t\.(\w+)\s+"(\w+)"/). 
    reject {|type,name| %w(created_at updated_at).include? name}. 
    map {|type,name| "#{name}:#{type}"}.join(' ') 
end 

如果你運行它,你會得到一系列命令。在一個新目錄中,創建一個新的rails應用程序,然後運行這些命令(只需複製並粘貼它們即可)。抓住你想要的文件。完成後刪除目錄。

+0

這很有幫助。謝謝。 –

+1

這很好,但https://github.com/frenesim/schema_to_scaffold更徹底地充實了這一點。 – dankohn

2

我不相信有一個命令來生成單個文件......只有一個整個腳手架。

是否有你想要生成該文件的原因?你不確定內容應該是什麼?

+0

原因是我添加了一堆字段並希望自動生成該文件。 –

+0

啊......你最好的選擇是把它們添加進你自己。您可以重新生成您的模型腳手架,但最終您還是會輸入所有列名稱和類型。 –

1

如果您還沒有模型的控制器,您可以生成控制器,指定您的入口點併爲您創建視圖,但是,如果您希望已經有_form.html。*文件用「醜陋」的默認視圖編寫,你可能不得不使用腳手架來做到這一點。

這是一個很好的guide on generators and other rails command line options

2

您可以使用這種 「反向腳手架」 腳本:

https://github.com/ahe/reverse_scaffold

它會生成所需的html.erbb文件就在你的應用程序/ views文件夾。

它在自述文件頁面上有很好的解釋。

而且,它已更新爲Rails 3.2