Skip to content
This repository
Newer
Older
100644 640 lines (482 sloc) 26.99 kb
420b4ce7 »
2009-04-22 sick of updating the README with every version bump :)
1 h1. Formtastic
dcf8bebb » Justin French
2008-04-07 Initial Commit
2
3 Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications.
4
cd0a1bac »
2010-11-17 pledgie image URL is a redirect, so here's the real URL
5 <a href='http://www.pledgie.com/campaigns/2178'><img alt='Click here to lend your support to: formtastic and make a donation at www.pledgie.com !' src='http://pledgie.com/campaigns/2178.png?skin_name=chrome' border='0' /></a>
1bbe8ea4 »
2010-10-08 add the pledgie badge back in, GH don't show them any more?
6
dc5857b9 »
2011-01-13 moved compatibility note in README further up
7
8 h2. Compatibility
9
a69e7b87 »
2012-01-30 note that 2.1.x is required for Rails 3.2 in README, ref #785
10 * Formtastic 2.1.x is Rails 3.x compatible
11 * Formtastic 2.0.x is Rails 3.0.x and 3.1.x compatible only
22a9af1c »
2011-09-02 prep README for 2.0
12 * Formtastic 1.x is compatible with both Rails 2 and 3, and is being maintained for bug fixes in the the "1.2-stable branch":https://github.com/justinfrench/formtastic/tree/1.2-stable. View the README in that branch for installation instructions, etc.
dc5857b9 »
2011-01-13 moved compatibility note in README further up
13 * Formtastic, much like Rails, is very ActiveRecord-centric. Many are successfully using other ActiveModel-like ORMs and objects (DataMapper, MongoMapper, Mongoid, Authlogic, Devise...) but we're not guaranteeing full compatibility at this stage. Patches are welcome!
14
15
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
16 h2. The Story
dcf8bebb » Justin French
2008-04-07 Initial Commit
17
2d4a72b4 »
2009-02-16 big update to the README
18 One day, I finally had enough, so I opened up my text editor, and wrote a DSL for how I'd like to author forms:
dcf8bebb » Justin French
2008-04-07 Initial Commit
19
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
20 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
21 <%= semantic_form_for @article do |f| %>
22
23 <%= f.inputs :name => "Basic" do %>
24 <%= f.input :title %>
25 <%= f.input :body %>
26 <%= f.input :section %>
27 <%= f.input :publication_state, :as => :radio %>
28 <%= f.input :category %>
29 <%= f.input :allow_comments, :label => "Allow commenting on this article" %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
30 <% end %>
31
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
32 <%= f.inputs :name => "Advanced" do %>
33 <%= f.input :keywords, :required => false, :hint => "Example: ruby, rails, forms" %>
34 <%= f.input :extract, :required => false %>
35 <%= f.input :description, :required => false %>
36 <%= f.input :url_title, :required => false %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
37 <% end %>
38
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
39 <%= f.inputs :name => "Author", :for => :author do |author_form| %>
05ae54da » josevalim
2009-03-22 Fixed nested attributes example in README
40 <%= author_form.input :first_name %>
41 <%= author_form.input :last_name %>
9997ce62 » josevalim
2009-03-07 Added more information about inputs :for in README.
42 <% end %>
43
a429c6ad »
2012-01-14 change README to use actions instead of buttons
44 <%= f.actions do %>
45 <%= f.action :submit, :as => :button %>
46 <%= f.action :cancel, :as => :link %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
47 <% end %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
48
dcf8bebb » Justin French
2008-04-07 Initial Commit
49 <% end %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
50 </pre>
51
6734cfd2 »
2008-07-21 sme typos and cleanups in the readme
52 I also wrote the accompanying HTML output I expected, favoring something very similar to the fieldsets, lists and other semantic elements Aaron Gustafson presented in "Learning to Love Forms":http://www.slideshare.net/AaronGustafson/learning-to-love-forms-web-directions-south-07, hacking together enough Ruby to prove it could be done.
dcf8bebb » Justin French
2008-04-07 Initial Commit
53
54
bdbe30ba »
2011-09-23 a few README clean-ups for 2.0
55 h2. It's awesome because...
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
56
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
57 * It can handle @belongs_to@ associations (like Post belongs_to :author), rendering a select or set of radio inputs with choices from the parent model.
58 * It can handle @has_many@ and @has_and_belongs_to_many@ associations (like: Post has_many :tags), rendering a multi-select with choices from the child models.
59 * It's Rails 3 compatible (including nested forms).
60 * It has internationalization (I18n)!
61 * It's _really_ quick to get started with a basic form in place (4 lines), then go back to add in more detail if you need it.
62 * There's heaps of elements, id and class attributes for you to hook in your CSS and JS.
63 * It handles real world stuff like inline hints, inline error messages & help text.
64 * It doesn't hijack or change any of the standard Rails form inputs, so you can still use them as expected (even mix and match).
65 * It's got absolutely awesome spec coverage.
66 * There's a bunch of people using and working on it (it's not just one developer building half a solution).
67 * It has growing HTML5 support (new inputs like email/phone/search, new attributes like required/min/max/step/placeholder)
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
68
69
15e0bd98 » Justin French
2008-05-30 updated the README a little to match last night's slides
70 h2. Opinions
71
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
72 * It should be easier to do things the right way than the wrong way.
73 * Sometimes _more mark-up_ is better.
74 * Elements and attribute hooks are _gold_ for stylesheet authors.
75 * Make the common things we do easy, yet ensure uncommon things are still possible.
15e0bd98 » Justin French
2008-05-30 updated the README a little to match last night's slides
76
dcf8bebb » Justin French
2008-04-07 Initial Commit
77
3dd64554 »
2009-07-03 Link to RDoc URL in README
78 h2. Documentation
79
80 RDoc documentation _should_ be automatically generated after each commit and made available on the "rdoc.info website":http://rdoc.info/projects/justinfrench/formtastic.
81
82
e3f04f66 »
2010-09-13 README installation instructions simlified and clarified to specific …
83 h2. Installation
c89e9853 »
2009-03-08 updating README with gem/plugin installation instructions
84
ebe4e51c »
2010-09-08 updated the README to reflect the new gem versions and other compatib…
85 Simply add Formtastic to your Gemfile and bundle it up:
557f9295 »
2010-08-28 updated README to reflect new 1.1.0.beta gem, etc
86
87 <pre>
22a9af1c »
2011-09-02 prep README for 2.0
88 gem 'formtastic'
557f9295 »
2010-08-28 updated README to reflect new 1.1.0.beta gem, etc
89 </pre>
90
22a9af1c »
2011-09-02 prep README for 2.0
91 Run the installation generator:
c89e9853 »
2009-03-08 updating README with gem/plugin installation instructions
92
93 <pre>
e3f04f66 »
2010-09-13 README installation instructions simlified and clarified to specific …
94 $ rails generate formtastic:install
c89e9853 »
2009-03-08 updating README with gem/plugin installation instructions
95 </pre>
96
ebe4e51c »
2010-09-08 updated the README to reflect the new gem versions and other compatib…
97
98 h2. Stylesheets
c89e9853 »
2009-03-08 updating README with gem/plugin installation instructions
99
28754a29 »
2011-06-03 updated README for asset pipeline with ie6 & 7 css
100 A proof-of-concept set of stylesheets are provided which you can include in your layout. Customization is best achieved by overriding these styles in an additional stylesheet.
4f4b069f »
2011-05-31 Rails 3.1 Asset Pipeline compatibility (Fixes #563)
101
102 h3. Stylesheet usage in Rails < 3.1:
103
104 <pre>
105 $ rails generate formtastic:install
106 </pre>
107
108 <pre>
109 # app/views/layouts/application.html.erb
110 <%= stylesheet_link_tag 'formtastic', 'my_formtastic_changes' %>
28754a29 »
2011-06-03 updated README for asset pipeline with ie6 & 7 css
111 <!--[if IE 6]><%= stylesheet_link_tag 'formtastic_ie6' %><![endif]-->
112 <!--[if IE 7]><%= stylesheet_link_tag 'formtastic_ie7' %><![endif]-->
4f4b069f »
2011-05-31 Rails 3.1 Asset Pipeline compatibility (Fixes #563)
113 </pre>
114
115 h3. Stylesheet usage in Rails >= 3.1:
116
e47ea4f3 » Brad Carson
2012-03-27 clarify docs for conditional stylesheet use in Rails 3.1+
117 Rails 3.1 introduces an asset pipeline that allows plugins like Formtastic to serve their own Stylesheets, Javascripts, etc without having to run generators that copy them across to the host application. Formtastic makes three stylesheets available as an Engine, you just need to require them in your global stylesheets.
c89e9853 »
2009-03-08 updating README with gem/plugin installation instructions
118
5c1ce48a »
2009-10-21 moved the stylesheets stuff up with installation
119 <pre>
4f4b069f »
2011-05-31 Rails 3.1 Asset Pipeline compatibility (Fixes #563)
120 # app/assets/stylesheets/application.css
121 *= require formtastic
28754a29 »
2011-06-03 updated README for asset pipeline with ie6 & 7 css
122 *= require my_formtastic_changes
e47ea4f3 » Brad Carson
2012-03-27 clarify docs for conditional stylesheet use in Rails 3.1+
123 </pre>
124
125 Conditional stylesheets need to be compiled separately to prevent them being bundled and included with other application styles. Remove @require_tree .@ from application.css and specify required stylesheets individually.
126
127 <pre>
28754a29 »
2011-06-03 updated README for asset pipeline with ie6 & 7 css
128 # app/assets/stylesheets/ie6.css
129 *= require formtastic_ie6
130
131 # app/assets/stylesheets/ie7.css
132 *= require formtastic_ie7
5c1ce48a »
2009-10-21 moved the stylesheets stuff up with installation
133 </pre>
2526d2c1 »
2009-10-11 Going back to generators instead of Rake tasks for copying stylesheet…
134
28754a29 »
2011-06-03 updated README for asset pipeline with ie6 & 7 css
135 <pre>
136 # app/views/layouts/application.html.erb
137 <%= stylesheet_link_tag 'application' %>
138 <!--[if IE 6]><%= stylesheet_link_tag 'ie6' %><![endif]-->
139 <!--[if IE 7]><%= stylesheet_link_tag 'ie7' %><![endif]-->
140 </pre>
141
e47ea4f3 » Brad Carson
2012-03-27 clarify docs for conditional stylesheet use in Rails 3.1+
142 <pre>
143 # config/environments/production.rb
144 config.assets.precompile += %w( ie6.css ie7.css )
145 </pre>
4036e741 »
2010-07-21 pruning and cleaning up the README, it's been a while
146
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
147 h2. Usage
148
149 Forms are really boring to code... you want to get onto the good stuff as fast as possible.
150
a429c6ad »
2012-01-14 change README to use actions instead of buttons
151 This renders a set of inputs (one for _most_ columns in the database table, and one for each ActiveRecord @belongs_to@-association), followed by default action buttons (an input submit button):
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
152
153 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
154 <%= semantic_form_for @user do |f| %>
155 <%= f.inputs %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
156 <%= f.actions %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
157 <% end %>
158 </pre>
159
bdbe30ba »
2011-09-23 a few README clean-ups for 2.0
160 This is a great way to get something up fast, but like scaffolding, it's *not recommended for production*. Don't be so lazy!
5018ed04 »
2010-11-05 clarified the differences in Rails 2 and 3 ERB blocks, and some other…
161
a429c6ad »
2012-01-14 change README to use actions instead of buttons
162 To specify the order of the fields, skip some of the fields or even add in fields that Formtastic couldn't infer. You can pass in a list of field names to @inputs@ and list of action names to @actions@:
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
163
164 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
165 <%= semantic_form_for @user do |f| %>
166 <%= f.inputs :title, :body, :section, :categories, :created_at %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
167 <%= f.actions :submit, :cancel %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
168 <% end %>
169 </pre>
170
a429c6ad »
2012-01-14 change README to use actions instead of buttons
171 You probably want control over the input type Formtastic uses for each field. You can expand the @inputs@ and @actions@ to block helper format and use the @:as@ option to specify an exact input type:
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
172
173 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
174 <%= semantic_form_for @post do |f| %>
175 <%= f.inputs do %>
176 <%= f.input :title %>
177 <%= f.input :body %>
178 <%= f.input :section, :as => :radio %>
179 <%= f.input :categories %>
180 <%= f.input :created_at, :as => :string %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
181 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
182 <%= f.actions do %>
183 <%= f.action :submit, :as => :button %>
184 <%= f.action :cancel, :as => :link %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
185 <% end %>
186 <% end %>
187 </pre>
188
a45853c5 »
2009-04-19 small README typo
189 If you want to customize the label text, or render some hint text below the field, specify which fields are required/optional, or break the form into two fieldsets, the DSL is pretty comprehensive:
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
190
191 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
192 <%= semantic_form_for @post do |f| %>
193 <%= f.inputs "Basic", :id => "basic" do %>
194 <%= f.input :title %>
195 <%= f.input :body %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
196 <% end %>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
197 <%= f.inputs :name => "Advanced Options", :id => "advanced" do %>
198 <%= f.input :slug, :label => "URL Title", :hint => "Created automatically if left blank", :required => false %>
199 <%= f.input :section, :as => :radio %>
200 <%= f.input :user, :label => "Author", :member_label => :full_name %>
201 <%= f.input :categories, :required => false %>
202 <%= f.input :created_at, :as => :string, :label => "Publication Date", :required => false %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
203 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
204 <%= f.actions do %>
390ced48 » haines
2012-01-16 Minor formatting/typo fixes
205 <%= f.action :submit %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
206 <% end %>
207 <% end %>
208 </pre>
209
4033f270 » nathanl
2010-11-11 Small addition to documentation
210 You can create forms for nested resources:
211
212 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
213 <%= semantic_form_for [@author, @post] do |f| %>
4033f270 » nathanl
2010-11-11 Small addition to documentation
214 </pre>
215
bcd3ba9a »
2010-10-26 some README updates
216 Nested forms are also supported (don't forget your models need to be setup correctly with @accepts_nested_attributes_for@). You can do it in the Rails way:
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
217
218 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
219 <%= semantic_form_for @post do |f| %>
220 <%= f.inputs :title, :body, :created_at %>
221 <%= f.semantic_fields_for :author do |author| %>
1fcc0681 » grimen
2009-10-25 An effort to make the README somewhat more readable.
222 <%= author.inputs :first_name, :last_name, :name => "Author" %>
41a67543 » josevalim
2009-03-24 Another README fix.
223 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
224 <%= f.actions %>
9997ce62 » josevalim
2009-03-07 Added more information about inputs :for in README.
225 <% end %>
226 </pre>
227
6fd1bd27 »
2009-04-19 improving the documentation in README
228 Or the Formtastic way with the @:for@ option:
9997ce62 » josevalim
2009-03-07 Added more information about inputs :for in README.
229
230 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
231 <%= semantic_form_for @post do |f| %>
232 <%= f.inputs :title, :body, :created_at %>
233 <%= f.inputs :first_name, :last_name, :for => :author, :name => "Author" %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
234 <%= f.actions %>
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
235 <% end %>
236 </pre>
237
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
238 When working in has many association, you can even supply @"%i"@ in your fieldset name; they will be properly interpolated with the child index. For example:
d5e3b0a0 » josevalim
2009-03-24 Added nested child nindex support.
239
240 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
241 <%= semantic_form_for @post do |f| %>
242 <%= f.inputs %>
243 <%= f.inputs :name => 'Category #%i', :for => :categories %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
244 <%= f.actions %>
d5e3b0a0 » josevalim
2009-03-24 Added nested child nindex support.
245 <% end %>
246 </pre>
247
8b1f0164 » mhuggins
2012-02-12 Pass current label as arguments to inputs block for nested inputs
248 Alternatively, the current index can be accessed via the `inputs` block's arguments for use anywhere:
249
250 <pre>
251 <%= semantic_form_for @post do |f| %>
252 <%= f.inputs :for => :categories do |category, i| %>
253 <% if i <= 2 %>
254 <%= f.inputs :name => "Category ##{i}" %>
255 <% else %>
256 <%= f.inputs :name => "Category ##{i} (optional)" %>
257 <% end %>
258 <% end %>
259 <%= f.actions %>
260 <% end %>
261 </pre>
262
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
263 If you have more than one form on the same page, it may lead to HTML invalidation because of the way HTML element id attributes are assigned. You can provide a namespace for your form to ensure uniqueness of id attributes on form elements. The namespace attribute will be prefixed with underscore on the generate HTML id. For example:
d174db04 » asanghi
2010-10-24 change id_prefix to namespace; added documentation in README
264
265 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
266 <%= semantic_form_for(@post, :namespace => 'cat_form') do |f| %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
267 <%= f.inputs do %>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
268 <%= f.input :title %> # id="cat_form_post_title"
269 <%= f.input :body %> # id="cat_form_post_body"
270 <%= f.input :created_at %> # id="cat_form_post_created_at"
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
271 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
272 <%= f.actions %>
d174db04 » asanghi
2010-10-24 change id_prefix to namespace; added documentation in README
273 <% end %>
274 </pre>
6fd1bd27 »
2009-04-19 improving the documentation in README
275
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
276 Customize HTML attributes for any input using the @:input_html@ option. Typically this is used to disable the input, change the size of a text field, change the rows in a textarea, or even to add a special class to an input to attach special behavior like "autogrow":http://plugins.jquery.com/project/autogrowtextarea textareas:
6fd1bd27 »
2009-04-19 improving the documentation in README
277
278 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
279 <%= semantic_form_for @post do |f| %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
280 <%= f.inputs do %>
c36692c2 »
2011-12-12 cols => size in README, fixes #753
281 <%= f.input :title, :input_html => { :size => 10 } %>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
282 <%= f.input :body, :input_html => { :class => 'autogrow', :rows => 10, :cols => 20, :maxlength => 10 } %>
283 <%= f.input :created_at, :input_html => { :disabled => true } %>
c7b98494 » ZachBeta
2012-01-10 Added a little sample of :input_html => { :readonly => true } which I…
284 <%= f.input :updated_at, :input_html => { :readonly => true } %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
285 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
286 <%= f.actions %>
6fd1bd27 »
2009-04-19 improving the documentation in README
287 <% end %>
288 </pre>
289
a429c6ad »
2012-01-14 change README to use actions instead of buttons
290 The same can be done for actions with the @:button_html@ option:
6fd1bd27 »
2009-04-19 improving the documentation in README
291
292 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
293 <%= semantic_form_for @post do |f| %>
6fd1bd27 »
2009-04-19 improving the documentation in README
294 ...
a429c6ad »
2012-01-14 change README to use actions instead of buttons
295 <%= f.actions do %>
296 <%= f.action :submit, :button_html => { :class => "primary", :disable_with => 'Wait...' } %>
6fd1bd27 »
2009-04-19 improving the documentation in README
297 <% end %>
298 <% end %>
299 </pre>
300
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
301 Customize the HTML attributes for the @<li>@ wrapper around every input with the @:wrapper_html@ option hash. There's one special key in the hash: (@:class@), which will actually _append_ your string of classes to the existing classes provided by Formtastic (like @"required string error"@).
1fcc0681 » grimen
2009-10-25 An effort to make the README somewhat more readable.
302
6fd1bd27 »
2009-04-19 improving the documentation in README
303 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
304 <%= semantic_form_for @post do |f| %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
305 <%= f.inputs do %>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
306 <%= f.input :title, :wrapper_html => { :class => "important" } %>
307 <%= f.input :body %>
308 <%= f.input :description, :wrapper_html => { :style => "display:none;" } %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
309 <% end %>
6fd1bd27 »
2009-04-19 improving the documentation in README
310 ...
311 <% end %>
312 </pre>
313
a92cf7cb »
2010-03-13 added documentation for :collection option, resolves #181
314 Many inputs provide a collection of options to choose from (like @:select@, @:radio@, @:check_boxes@, @:boolean@). In many cases, Formtastic can find choices through the model associations, but if you want to use your own set of choices, the @:collection@ option is what you want. You can pass in an Array of objects, an array of Strings, a Hash... Throw almost anything at it! Examples:
315
316 <pre>
f6d792f3 » denispeplin
2012-02-24 Replace deprecated "find(:all)" with "all" method
317 f.input :authors, :as => :check_boxes, :collection => User.order("last_name ASC").all
a92cf7cb »
2010-03-13 added documentation for :collection option, resolves #181
318 f.input :authors, :as => :check_boxes, :collection => current_user.company.users.active
319 f.input :authors, :as => :check_boxes, :collection => [@justin, @kate]
320 f.input :authors, :as => :check_boxes, :collection => ["Justin", "Kate", "Amelia", "Gus", "Meg"]
f6d792f3 » denispeplin
2012-02-24 Replace deprecated "find(:all)" with "all" method
321 f.input :author, :as => :select, :collection => Author.all
a92cf7cb »
2010-03-13 added documentation for :collection option, resolves #181
322 f.input :author, :as => :select, :collection => { @justin.name => @justin.id, @kate.name => @kate.id }
323 f.input :author, :as => :select, :collection => ["Justin", "Kate", "Amelia", "Gus", "Meg"]
f6d792f3 » denispeplin
2012-02-24 Replace deprecated "find(:all)" with "all" method
324 f.input :author, :as => :radio, :collection => User.all
a92cf7cb »
2010-03-13 added documentation for :collection option, resolves #181
325 f.input :author, :as => :radio, :collection => [@justin, @kate]
326 f.input :author, :as => :radio, :collection => { @justin.name => @justin.id, @kate.name => @kate.id }
327 f.input :author, :as => :radio, :collection => ["Justin", "Kate", "Amelia", "Gus", "Meg"]
328 f.input :admin, :as => :radio, :collection => ["Yes!", "No"]
f9e7ecd8 » ZachBeta
2012-03-03 Added a custom hash to the readme, should be compatable with rb 1.8.7…
329 f.input :book_id, :as => :select, :collection => Hash[Book.all.map{|b| [b.name,b.id]}]
a92cf7cb »
2010-03-13 added documentation for :collection option, resolves #181
330 </pre>
331
6fd1bd27 »
2009-04-19 improving the documentation in README
332
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
333 h2. The Available Inputs
334
d9a06fe5 » grimen
2009-10-25 README: Last set of polishing moves for now.
335 The Formtastic input types:
336
8577c184 » grimen
2009-10-25 More README-readability polishing.
337 * @:select@ - a select menu. Default for ActiveRecord associations: @belongs_to@, @has_many@, and @has_and_belongs_to_many@.
338 * @:check_boxes@ - a set of check_box inputs. Alternative to @:select@ for ActiveRecord-associations: @has_many@, and @has_and_belongs_to_many@.
339 * @:radio@ - a set of radio inputs. Alternative to @:select@ for ActiveRecord-associations: @belongs_to@.
340 * @:time_zone@ - a select input. Default for column types: @:string@ with name matching @"time_zone"@.
341 * @:password@ - a password input. Default for column types: @:string@ with name matching @"password"@.
342 * @:text@ - a textarea. Default for column types: @:text@.
a3155470 »
2012-03-17 Rename DateInput, TimeInput, DatetimeInput:
343 * @:date_select@ - a date select. Default for column types: @:date@.
344 * @:datetime_select@ - a date and time select. Default for column types: @:datetime@ and @:timestamp@.
345 * @:time_select@ - a time select. Default for column types: @:time@.
8577c184 » grimen
2009-10-25 More README-readability polishing.
346 * @:boolean@ - a checkbox. Default for column types: @:boolean@.
347 * @:string@ - a text field. Default for column types: @:string@.
a33f4d0b »
2011-04-05 renamed NumericInput (:as => :numeric) to NumberInput (:as => :number)
348 * @:number@ - a text field (just like string). Default for column types: @:integer@, @:float@, and @:decimal@.
8577c184 » grimen
2009-10-25 More README-readability polishing.
349 * @:file@ - a file field. Default for file-attachment attributes matching: "paperclip":http://github.com/thoughtbot/paperclip or "attachment_fu":http://github.com/technoweenie/attachment_fu.
350 * @:country@ - a select menu of country names. Default for column types: :string with name @"country"@ - requires a *country_select* plugin to be installed.
e0a78747 » asanghi
2010-10-10 Added auto-guessing and updated some docs
351 * @:email@ - a text field (just like string). Default for columns with name matching @"email"@. New in HTML5. Works on some mobile browsers already.
352 * @:url@ - a text field (just like string). Default for columns with name matching @"url"@. New in HTML5. Works on some mobile browsers already.
353 * @:phone@ - a text field (just like string). Default for columns with name matching @"phone"@ or @"fax"@. New in HTML5.
354 * @:search@ - a text field (just like string). Default for columns with name matching @"search"@. New in HTML5. Works on Safari.
66888879 » grimen
2009-10-25 More README-polishing.
355 * @:hidden@ - a hidden field. Creates a hidden field (added for compatibility).
d877b6b8 »
2011-04-06 Merge branch 'refactor' of https://github.com/okonski/formtastic into…
356 * @:range@ - a slider field.
66888879 » grimen
2009-10-25 More README-polishing.
357
fd23ef4f »
2010-03-13 tiny README tweak
358 The comments in the code are pretty good for each of these (what it does, what the output is, what the options are, etc.) so go check it out.
359
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
360
06ff25d8 » lardawge
2009-12-10 Added section clarifying label lookup order.
361 h2. Delegation for label lookups
362
363 Formtastic decides which label to use in the following order:
364
365 <pre>
366 1. :label # :label => "Choose Title"
367 2. Formtastic i18n # if either :label => true || i18n_lookups_by_default = true (see Internationalization)
368 3. Activerecord i18n # if localization file found for the given attribute
369 4. label_str_method # if nothing provided this defaults to :humanize but can be set to a custom method
370 </pre>
371
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
372 h2. Internationalization (I18n)
373
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
374 h3. Basic Localization
71ef99fd »
2009-10-21 nuked the configuration copy/paste from the README, linked to the gen…
375
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
376 Formtastic has some neat I18n-features. ActiveRecord object names and attributes are, by default, taken from calling @@object.human_name@ and @@object.human_attribute_name(attr)@ respectively. There are a few words specific to Formtastic that can be translated. See @lib/locale/en.yml@ for more information.
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
377
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
378 Basic localization (labels only, with ActiveRecord):
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
379
380 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
381 <%= semantic_form_for @post do |f| %>
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
382 <%= f.inputs do %>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
383 <%= f.input :title %> # => :label => I18n.t('activerecord.attributes.user.title') or 'Title'
384 <%= f.input :body %> # => :label => I18n.t('activerecord.attributes.user.body') or 'Body'
385 <%= f.input :section %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
600e013a »
2011-09-28 always use inputs() block in README examples, less chance of WTF moments
386 <% end %>
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
387 <% end %>
388 </pre>
389
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
390 *Note:* This is perfectly fine if you just want your labels/attributes and/or models to be translated using *ActiveRecord I18n attribute translations*, and you don't use input hints and legends. But what if you do? And what if you don't want same labels in all forms?
391
392 h3. Enhanced Localization (Formtastic I18n API)
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
393
d9a06fe5 » grimen
2009-10-25 README: Last set of polishing moves for now.
394 Formtastic supports localized *labels*, *hints*, *legends*, *actions* using the I18n API for more advanced usage. Your forms can now be DRYer and more flexible than ever, and still fully localized. This is how:
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
395
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
396 *1. Enable I18n lookups by default (@config/initializers/formtastic.rb@):*
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
397
398 <pre>
549ef7a7 »
2011-01-18 Renamed all instances of Formtastic::SemanticFormBuilder to Formtasti…
399 Formtastic::FormBuilder.i18n_lookups_by_default = true
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
400 </pre>
401
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
402 *2. Add some cool label-translations/variants (@config/locale/en.yml@):*
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
403
404 <pre>
405 en:
406 formtastic:
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
407 titles:
408 post_details: "Post details"
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
409 labels:
410 post:
13164f7f »
2011-04-05 Allow HTML5 placeholder attributes to be set on String-ish inputs (st…
411 title: "Your Title"
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
412 body: "Write something..."
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
413 edit:
414 title: "Edit title"
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
415 hints:
416 post:
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
417 title: "Choose a good title for your post."
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
418 body: "Write something inspiring here."
13164f7f »
2011-04-05 Allow HTML5 placeholder attributes to be set on String-ish inputs (st…
419 placeholders:
420 post:
421 title: "Title your post"
422 slug: "Leave blank for an automatically generated slug"
423 user:
424 email: "you@yours.com"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
425 actions:
743b26b9 » yabawock
2010-05-29 Revert "Reverting two i18n patches pulled in from the rails3 branch w…
426 create: "Create my %{model}"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
427 update: "Save changes"
7723de78 »
2012-01-11 Introducing actions for submit, cancel and reset buttons
428 reset: "Reset form"
429 cancel: "Cancel and go back"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
430 dummie: "Launch!"
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
431 </pre>
432
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
433 *3. ...and now you'll get:*
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
434
435 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
436 <%= semantic_form_for Post.new do |f| %>
437 <%= f.inputs do %>
438 <%= f.input :title %> # => :label => "Choose a title...", :hint => "Choose a good title for your post."
439 <%= f.input :body %> # => :label => "Write something...", :hint => "Write something inspiring here."
440 <%= f.input :section %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
441 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
442 <%= f.actions do %>
390ced48 » haines
2012-01-16 Minor formatting/typo fixes
443 <%= f.action :submit %> # => "Create my %{model}"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
444 <% end %>
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
445 <% end %>
446 </pre>
447
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
448 *4. Localized titles (a.k.a. legends):*
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
449
17f66680 »
2009-11-21 Revert "This reverts commit 440bd2d."
450 _Note: Slightly different because Formtastic can't guess how you group fields in a form. Legend text can be set with first (as in the sample below) specified value, or :name/:title options - depending on what flavor is preferred._
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
451
452 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
453 <%= semantic_form_for @post do |f| %>
454 <%= f.inputs :post_details do %> # => :title => "Post details"
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
455 # ...
456 <% end %>
457 # ...
458 <% end %>
459 </pre>
460
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
461 *5. Override I18n settings:*
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
462
463 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
464 <%= semantic_form_for @post do |f| %>
465 <%= f.inputs do %>
466 <%= f.input :title %> # => :label => "Choose a title...", :hint => "Choose a good title for your post."
467 <%= f.input :body, :hint => false %> # => :label => "Write something..."
468 <%= f.input :section, :label => 'Some section' %> # => :label => 'Some section'
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
469 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
470 <%= f.actions do %>
390ced48 » haines
2012-01-16 Minor formatting/typo fixes
471 <%= f.action :submit, :label => :dummie %> # => "Launch!"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
472 <% end %>
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
473 <% end %>
474 </pre>
475
476 If I18n-lookups is disabled, i.e.:
477
478 <pre>
549ef7a7 »
2011-01-18 Renamed all instances of Formtastic::SemanticFormBuilder to Formtasti…
479 Formtastic::FormBuilder.i18n_lookups_by_default = false
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
480 </pre>
481
482 ...then you can enable I18n within the forms instead:
483
484 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
485 <%= semantic_form_for @post do |f| %>
486 <%= f.inputs do %>
487 <%= f.input :title, :label => true %> # => :label => "Choose a title..."
488 <%= f.input :body, :label => true %> # => :label => "Write something..."
489 <%= f.input :section, :label => true %> # => :label => I18n.t('activerecord.attributes.user.section') or 'Section'
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
490 <% end %>
a429c6ad »
2012-01-14 change README to use actions instead of buttons
491 <%= f.actions do %>
492 <%= f.action :submit, :label => true %> # => "Update %{model}" (if we are in edit that is...)
4aca8cd4 » grimen
2009-10-24 New I18n-features:
493 <% end %>
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
494 <% end %>
495 </pre>
496
49a18a52 » grimen
2009-10-25 README-update: I18n instructions are better structured, and easier to…
497 *6. Advanced I18n lookups*
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
498
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
499 For more flexible forms; Formtastic finds translations using a bottom-up approach taking the following variables in account:
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
500
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
501 * @MODEL@, e.g. "post"
502 * @ACTION@, e.g. "edit"
4aca8cd4 » grimen
2009-10-24 New I18n-features:
503 * @KEY/ATTRIBUTE@, e.g. "title", :my_custom_key, ...
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
504
505 ...in the following order:
506
66888879 » grimen
2009-10-25 More README-polishing.
507 1. @formtastic.{titles,labels,hints,actions}.MODEL.ACTION.ATTRIBUTE@ - by model and action
508 2. @formtastic.{titles,labels,hints,actions}.MODEL.ATTRIBUTE@ - by model
509 3. @formtastic.{titles,labels,hints,actions}.ATTRIBUTE@ - global default
94ce3eca » grimen
2009-08-03 Documentation for the new I18n features for labels/hints.
510
511 ...which means that you can define translations like this:
512
513 <pre>
514 en:
515 formtastic:
516 labels:
517 title: "Title" # Default global value
518 article:
519 body: "Article content"
520 post:
521 new:
522 title: "Choose a title..."
523 body: "Write something..."
524 edit:
525 title: "Edit title"
526 body: "Edit body"
527 </pre>
528
4aca8cd4 » grimen
2009-10-24 New I18n-features:
529 Values for @labels@/@hints@/@actions@ are can take values: @String@ (explicit value), @Symbol@ (i18n-lookup-key relative to the current "type", e.g. actions:), @true@ (force I18n lookup), @false@ (force no I18n lookup). Titles (legends) can only take: @String@ and @Symbol@ - true/false have no meaning.
75782e15 » grimen
2009-09-16 Updated I18n-instructions in README; on the I18n-support for fieldset…
530
71ef99fd »
2009-10-21 nuked the configuration copy/paste from the README, linked to the gen…
531
c4ebcefd » Wojciech Wnętrzak
2009-12-03 * added semantic_errors method with specs
532 h2. Semantic errors
533
534 You can show errors on base (by default) and any other attribute just passing it name to semantic_errors method:
535
536 <pre>
913215ef »
2011-09-28 use |f| consistently in README for form builder variable name
537 <%= semantic_form_for @post do |f| %>
538 <%= f.semantic_errors :state %>
c4ebcefd » Wojciech Wnętrzak
2009-12-03 * added semantic_errors method with specs
539 <% end %>
540 </pre>
541
542
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
543 h2. Modified & Custom Inputs
ce7da5e9 »
2009-11-10 added the builder config to the config template and quick documentati…
544
eb9e523b » nathanl
2011-09-27 Better documentation for custom inputs
545 You can modify existing inputs, subclass them, or create your own from scratch. Here's the basic process:
546
547 * Create a file in @app/inputs@ with a filename ending in @_input.rb@. For example, @app/inputs/hat_size_input.rb@. Formtastic will automatically look in @app/inputs@ and find the file.
548 * In that file, declare a classname ending in @Input@. For example, @class HatSizeInput@. It must have a @to_html@ method for rendering.
549 * To use that input, leave off the word "input" in your @as@ statement. For example, @f.input(:size, :as => :hat_size)@
550
551 Specific examples follow.
552
553 h3. Changing Existing Input Behavior
554
555 To modify the behavior of @StringInput@, subclass it in a new file, @app/inputs/string_input.rb@:
ce7da5e9 »
2009-11-10 added the builder config to the config template and quick documentati…
556
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
557 <pre>
558 class StringInput < Formtastic::Inputs::StringInput
559 def to_html
560 puts "this is my modified version of StringInput"
561 super
562 end
563 end
564 </pre>
ce7da5e9 »
2009-11-10 added the builder config to the config template and quick documentati…
565
eb9e523b » nathanl
2011-09-27 Better documentation for custom inputs
566 You can use your modified version with @:as => :string@.
567
568 h3. Creating New Inputs Based on Existing Ones
569
570 To create your own new types of inputs based on existing inputs, the process is similar. For example, to create @FlexibleTextInput@ based on @StringInput@, put the following in @app/inputs/flexible_text_input.rb@:
ce7da5e9 »
2009-11-10 added the builder config to the config template and quick documentati…
571
28bb57f3 » paneq
2010-11-02 Resolves http://github.com/justinfrench/formtastic/issues/#issue/409
572 <pre>
d57c0548 » robinst
2011-06-02 README: Fix mention of inexistent StringTextInput
573 class FlexibleTextInput < Formtastic::Inputs::StringInput
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
574 def input_html_options
575 super.merge(:class => "flexible-text-area")
576 end
577 end
28bb57f3 » paneq
2010-11-02 Resolves http://github.com/justinfrench/formtastic/issues/#issue/409
578 </pre>
3f58f3a5 »
2009-12-03 README update for --controller option form generator
579
eb9e523b » nathanl
2011-09-27 Better documentation for custom inputs
580 You can use your new input with @:as => :flexible_text@.
581
582 h3. Creating New Inputs From Scratch
583
584 To create a custom @DatePickerInput@ from scratch, put the following in @app/inputs/date_picker_input.rb@:
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
585
586 <pre>
34d6e16b » robinst
2011-06-02 README: Fix custom input example about DatePicker
587 class DatePickerInput
588 include Formtastic::Inputs::Base
589 def to_html
590 # ...
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
591 end
592 end
593 </pre>
594
eb9e523b » nathanl
2011-09-27 Better documentation for custom inputs
595 You can use your new input with @:as => :date_picker@.
596
597 h3. Don't subclass Formtastic::FormBuilder anymore
598
22a9af1c »
2011-09-02 prep README for 2.0
599 It was previously recommended in Formtastic 1.x to subclass Formtastic::FormBuilder to add your own inputs. This is no longer recommended in Formtastic 2, and will not work as expected.
7687bf76 »
2011-04-04 Added support for modified and custom inputs in app/inputs/.
600
5f3d7a61 »
2010-09-21 updated the generator docs in README to reflect both Rails 3 and 2
601
2d2d8131 » yabawock
2010-07-12 More intelligent way to html_escape labels and hints (GH-299)
602 h2. Security
ce7da5e9 »
2009-11-10 added the builder config to the config template and quick documentati…
603
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
604 By default, Formtastic escapes HTML entities in both labels and hints unless a string is marked as html_safe. If you are using an older rails version which doesn't know html_safe, or you want to globally turn this feature off, you can set the following in your initializer:
2d2d8131 » yabawock
2010-07-12 More intelligent way to html_escape labels and hints (GH-299)
605
549ef7a7 »
2011-01-18 Renamed all instances of Formtastic::SemanticFormBuilder to Formtasti…
606 Formtastic::FormBuilder.escape_html_entities_in_hints_and_labels = false
3f58f3a5 »
2009-12-03 README update for --controller option form generator
607
608
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
609 h2. Dependencies
dcf8bebb » Justin French
2008-04-07 Initial Commit
610
9af5cc8c »
2009-02-28 Big update and re-organization of the README:
611 There are none, but...
dcf8bebb » Justin French
2008-04-07 Initial Commit
612
64d55a84 » nathanl
2011-09-26 Improve grammar, capitalization, formatting
613 * If you want to use the @:country@ input, you'll need to install the "country-select plugin":https://github.com/chrislerum/country_select (or any other country_select plugin with the same API).
1fcc0681 » grimen
2009-10-25 An effort to make the README somewhat more readable.
614 * "rspec":http://github.com/dchelimsky/rspec/, "rspec_hpricot_matchers":http://rubyforge.org/projects/rspec-hpricot/ and "rcov":http://github.com/relevance/rcov gems (plus any of their own dependencies) are required for the test suite.
dcf8bebb » Justin French
2008-04-07 Initial Commit
615
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
616
2079c593 »
2010-01-02 added a section about contributing to README
617 h2. How to contribute
618
35e228eb »
2012-01-15 updates to README
619 * Fork the project on Github
620 * Create a topic branch for your changes
621 * Ensure that all tests pass (`bundle exec rake`)
622 * Ensure that the changes in your branch are as atomic as possible
623 * Create a pull request on Github
2079c593 »
2010-01-02 added a section about contributing to README
624
35e228eb »
2012-01-15 updates to README
625 For significant changes, you may wish to discuss your idea on the Formtastic Google group before coding to ensure that your change is likely to be accepted. Formtastic relies heavily on i18n, so if you're unsure of the impact this has on your changes, please discuss them with the group.
533c086f »
2010-11-28 added a section to the README on getting a dev environment up and run…
626
627
90282e3f »
2010-11-09 added twitter account to the readme
628 h2. Google Group, Twitter, etc
5af03110 »
2009-04-02 updated the README to pimp the google group more
629
630 Please join the "Formtastic Google Group":http://groups.google.com.au/group/formtastic, especially if you'd like to talk about a new feature, or report a bug.
631
35e228eb »
2012-01-15 updates to README
632 You can also follow "@justinfrench":http://twitter.com/formtastic or "@formtastic":http://twitter.com/formtastic on Twitter for announcements, tutorials and links.
90282e3f »
2010-11-09 added twitter account to the readme
633
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
634 h2. Project Info
635
35e228eb »
2012-01-15 updates to README
636 Formtastic was created by "Justin French":http://www.justinfrench.com with contributions from around 150 awesome developers. Run @git shortlog -n -s@ to see the awesome.
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
637
eff38a1b »
2011-05-27 too hard to maintain the maintainers
638 The project is hosted on Github: "http://github.com/justinfrench/formtastic":http://github.com/justinfrench/formtastic, where your contributions, forkings, comments, issues and feedback are greatly welcomed.
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
639
35e228eb »
2012-01-15 updates to README
640 Copyright (c) 2007-2012 Justin French, released under the MIT license.
Something went wrong with that request. Please try again.