Class: Formtastic::FormGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Formtastic::FormGenerator
- Defined in:
- lib/generators/formtastic/form/form_generator.rb
Overview
Generates a Formtastic form partial based on an existing model. It will not overwrite existing files without confirmation.
!!!shell $ rails generate formtastic:form Post !!!shell $ rails generate formtastic:form Post --copy !!!shell $ rails generate formtastic:form Post --template-engine haml $ rails generate formtastic:form Post --template-engine slim !!!shell $ rails generate formtastic:form Post title:string body:text !!!shell $ rails generate formtastic:form Post --controller admin/posts
Instance Method Summary collapse
Instance Method Details
#create_or_show ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/generators/formtastic/form/form_generator.rb', line 39 def create_or_show @attributes = reflected_attributes if @attributes.empty? engine = [:template_engine] if [:copy] template = File.read("#{self.class.source_root}/_form.html.#{engine}") erb = ERB.new(template, nil, '-') generated_code = erb.result(binding).strip rescue nil puts "The following code has been copied to the clipboard, just paste it in your views:" if save_to_clipboard(generated_code) puts generated_code || "Error: Nothing generated. Does the model exist?" else empty_directory "app/views/#{controller_path}" template "_form.html.#{engine}", "app/views/#{controller_path}/_form.html.#{engine}" end end |