D
David Heinemeier Hansson
I gather that most people are now familar with the RoR suite, so I'm
skipping the formal introductions and will just bring you the meat.
Get it all from http://www.rubyonrails.org, talk it up on #rubyonrails
(FreeNet).
Or even easier, just do "gem install rails" -- you'll automatically
install all the newest versions of the required dependencies.
Rails 0.6.5: Release of Contributors!
=====================================
This release is dedicated to all massive influx of patches from people
like Scott Baron, Kevin Radloff, Jeremy Kemper, Dave Steinberg, and
others that has put Rails on the fast track to maturity.
The GEM version now works with Windows and I fixed some issues with the
mod_ruby and fcgi dispatches. Also a few other minor fixes and of
course the inclusion of AP 0.8.0 and AR 0.9.4.
Also, unless you’re interested in running Edge Rails, the official
recommendation for how to install Rails, and keep it up to date, is
through RubyGems. So if you're just starting out, then "Gem Rails" is
what you want to install.
* No longer specifies a template for rdoc, so it'll use whatever is
default (you can change it in the rakefile)
* The new_model generator will now use the same rules for plural
wordings as Active Record (so Category will give categories, not
categorys) [Kevin Radloff]
* dispatch.fcgi now sets FCGI_PURE_RUBY to true to ensure that it's the
Ruby version that's loaded [danp]
* Made the GEM work with Windows
* Fixed bug where mod_ruby would "forget" the load paths added when
switching between controllers
* PostgreSQL are now supported for the automated production => test
database dropping [Kevin Radloff]
* Errors thrown by the dispatcher are now properly handled in FCGI.
* Upgraded to Action Pack 0.8.0 (lots and lots and lots of fixes)
* Upgraded to Active Record 0.9.4 (a bunch of fixes)
Action Pack 0.8.0: Collection selects, sending files, fixes!
============================================================
This is a major release containing the highest number of fixes and
minor additions yet. There’s three new collection selects for making it
easier to do drop-down selects on Active Record objects, there’s a new
command for sending files with all the header voodoo necessary for IE,
and then there’s a ton of minor fixes.
* Added select, collection_select, and country_select to make it easier
for Active Records to set attributes through drop-down lists of
options. Example:
<%= select "person", "gender", %w( Male Female ) %>
...would give the following:
<select name="person[gender]"
id="person_gender"><option>Male</option><option>Female</option></
select>
* Added an option for getting multiple values on a single form name
into an array instead of having the last one overwrite. This is
especially useful for groups of checkboxes, which can now be written
as:
<input type="checkbox" name="rights[]" value="CREATE" />
<input type="checkbox" name="rights[]" value="UPDATE" />
<input type="checkbox" name="rights[]" value="DELETE" />
...and retrieved in the controller action with:
@params["rights"] # => [ "CREATE", "UPDATE", "DELETE" ]
The old behavior (where the last one wins, "DELETE" in the example) is
still available. Just don't add "[]" to the end of the name. [Scott
Baron]
* Added send_file which uses the new render_text block acceptance to
make it feasible to send large files. The files is sent with a bunch of
voodoo HTTP headers required to get arbitrary files to download as
expected in as many browsers as possible (eg, IE hacks). Example:
def play_movie
send_file "/movies/that_movie.avi"
end
[Jeremy Kemper]
* render_text now accepts a block for deferred rendering. Useful for
streaming large files, displaying
a “please wait” message during a complex search, etc. Streaming
example:
render_text do |response|
File.open(path, 'rb') do |file|
while buf = file.read(1024)
print buf
end
end
end
[Jeremy Kemper]
* Added a new Tag Helper that can generate generic tags
programmatically insted of through HTML. Example:
tag("br", "clear" => "all") => <br clear="all" />
...that's usually not terribly interesting (unless you have a lot of
options already in a hash), but it gives way for more specific tags,
like the new form tag:
form_tag({ :controller => "weblog", :action => "update" }, {
:multipart => "true", "style" => "width: 200px"}) =>
<form action="/weblog/update" enctype="multipart/formdata"
style="width: 200px">
There's even a "pretty" version for people who don't like to open
tags in code and close them in HTML:
<%= start_form_tag :action => "update" %>
# all the input fields
<%= end_form_tag %>
(end_form_tag just returns "</form>")
* The selected parameter in options_for_select may now also an array of
values to be selected when using a multiple select. Example:
options_for_select([ "VISA", "Mastercard", "Discover" ], ["VISA",
"Discover"]) =>
<option
selected>VISA</option>\n<option>Mastercard</option>\n<option
selected>Discover</option>
[Scott Baron]
* Changed the URL rewriter so controller_prefix and action_prefix can
be used in isolation. You can now do:
url_for
controller_prefix => "clients")
...or:
url_for
action_prefix => "category/messages")
Neither would have worked in isolation before
controller_prefix
required a :controller and :action_prefix required an :action)
* Started process of a cleaner separation between Action Controller and
ERb-based Action Views by introducing an abstract base class for views.
And Amita adapter could be fitted in more easily now.
* The date helper methods date_select and datetime_select now also use
the field error wrapping (div with class fieldWithErrors by default).
* The date helper methods date_select and datetime_select can now
discard selects
* Added option on AbstractTemplate to specify a different field error
wrapping. Example:
ActionView::AbstractTemplate.field_error_proc = Proc.new do |html,
instance|
"<p>#{instance.method_name + instance.error_message}</p><div
style='background-color: red'>#{html}</div>"
end
...would give the following on a Post#title (text field) error:
<p>Title can't be empty</p>
<div style='background-color: red'>
<input id="post_title" name="post[title]" size="30" type="text"
value="Hello World" />
</div>
* The UrlHelper methods url_for and link_to will now by default only
return paths, not complete URIs. That should make it easier to fit a
Rails application behind a proxy or load-balancer. You can overwrite
this by passing
nly_path => false as part of the options. [Suggested
by U235]
* Fixed bug with having your own layout for use with scaffolding [Kevin
Radloff]
* Fixed bug where redirect_to_path didn't append the port on
non-standard ports [dhawkins]
* Scaffolding plays nicely with single-table inheritance (LoadErrors
are caught) [Jeremy Kemper]
* Scaffolding plays nice with plural models like Category/categories
[Jeremy Kemper]
* Fixed missing suffix appending in scaffolding [Kevin Radloff]
Active Record 0.9.4: Bunch of Small Things
==========================================
This release contains a bunch of smaller fixes and improvements, such
as escaping of plings in YAML content, ids passed to find and
find_on_conditions are now automatically sanitized, and
has_and_belongs_to_many now accepts an
rder key to determine in which
order the collection is returned.
* Added static method for instantly updating a record
* Treat decimal and numeric as Ruby floats [Andreas Schwartz]
* Treat chars as Ruby strings (fixes problem for Action Pack form
helpers too)
* Removed debugging output accidently left in (which would screw web
applications)
--
David Heinemeier Hansson,
http://www.rubyonrails.org/ -- Web-application framework for Ruby
http://www.instiki.org/ -- A No-Step-Three Wiki in Ruby
http://www.basecamphq.com/ -- Web-based Project Management
http://www.loudthinking.com/ -- Broadcasting Brain
http://www.nextangle.com/ -- Development & Consulting Services
skipping the formal introductions and will just bring you the meat.
Get it all from http://www.rubyonrails.org, talk it up on #rubyonrails
(FreeNet).
Or even easier, just do "gem install rails" -- you'll automatically
install all the newest versions of the required dependencies.
Rails 0.6.5: Release of Contributors!
=====================================
This release is dedicated to all massive influx of patches from people
like Scott Baron, Kevin Radloff, Jeremy Kemper, Dave Steinberg, and
others that has put Rails on the fast track to maturity.
The GEM version now works with Windows and I fixed some issues with the
mod_ruby and fcgi dispatches. Also a few other minor fixes and of
course the inclusion of AP 0.8.0 and AR 0.9.4.
Also, unless you’re interested in running Edge Rails, the official
recommendation for how to install Rails, and keep it up to date, is
through RubyGems. So if you're just starting out, then "Gem Rails" is
what you want to install.
* No longer specifies a template for rdoc, so it'll use whatever is
default (you can change it in the rakefile)
* The new_model generator will now use the same rules for plural
wordings as Active Record (so Category will give categories, not
categorys) [Kevin Radloff]
* dispatch.fcgi now sets FCGI_PURE_RUBY to true to ensure that it's the
Ruby version that's loaded [danp]
* Made the GEM work with Windows
* Fixed bug where mod_ruby would "forget" the load paths added when
switching between controllers
* PostgreSQL are now supported for the automated production => test
database dropping [Kevin Radloff]
* Errors thrown by the dispatcher are now properly handled in FCGI.
* Upgraded to Action Pack 0.8.0 (lots and lots and lots of fixes)
* Upgraded to Active Record 0.9.4 (a bunch of fixes)
Action Pack 0.8.0: Collection selects, sending files, fixes!
============================================================
This is a major release containing the highest number of fixes and
minor additions yet. There’s three new collection selects for making it
easier to do drop-down selects on Active Record objects, there’s a new
command for sending files with all the header voodoo necessary for IE,
and then there’s a ton of minor fixes.
* Added select, collection_select, and country_select to make it easier
for Active Records to set attributes through drop-down lists of
options. Example:
<%= select "person", "gender", %w( Male Female ) %>
...would give the following:
<select name="person[gender]"
id="person_gender"><option>Male</option><option>Female</option></
select>
* Added an option for getting multiple values on a single form name
into an array instead of having the last one overwrite. This is
especially useful for groups of checkboxes, which can now be written
as:
<input type="checkbox" name="rights[]" value="CREATE" />
<input type="checkbox" name="rights[]" value="UPDATE" />
<input type="checkbox" name="rights[]" value="DELETE" />
...and retrieved in the controller action with:
@params["rights"] # => [ "CREATE", "UPDATE", "DELETE" ]
The old behavior (where the last one wins, "DELETE" in the example) is
still available. Just don't add "[]" to the end of the name. [Scott
Baron]
* Added send_file which uses the new render_text block acceptance to
make it feasible to send large files. The files is sent with a bunch of
voodoo HTTP headers required to get arbitrary files to download as
expected in as many browsers as possible (eg, IE hacks). Example:
def play_movie
send_file "/movies/that_movie.avi"
end
[Jeremy Kemper]
* render_text now accepts a block for deferred rendering. Useful for
streaming large files, displaying
a “please wait” message during a complex search, etc. Streaming
example:
render_text do |response|
File.open(path, 'rb') do |file|
while buf = file.read(1024)
print buf
end
end
end
[Jeremy Kemper]
* Added a new Tag Helper that can generate generic tags
programmatically insted of through HTML. Example:
tag("br", "clear" => "all") => <br clear="all" />
...that's usually not terribly interesting (unless you have a lot of
options already in a hash), but it gives way for more specific tags,
like the new form tag:
form_tag({ :controller => "weblog", :action => "update" }, {
:multipart => "true", "style" => "width: 200px"}) =>
<form action="/weblog/update" enctype="multipart/formdata"
style="width: 200px">
There's even a "pretty" version for people who don't like to open
tags in code and close them in HTML:
<%= start_form_tag :action => "update" %>
# all the input fields
<%= end_form_tag %>
(end_form_tag just returns "</form>")
* The selected parameter in options_for_select may now also an array of
values to be selected when using a multiple select. Example:
options_for_select([ "VISA", "Mastercard", "Discover" ], ["VISA",
"Discover"]) =>
<option
selected>VISA</option>\n<option>Mastercard</option>\n<option
selected>Discover</option>
[Scott Baron]
* Changed the URL rewriter so controller_prefix and action_prefix can
be used in isolation. You can now do:
url_for
...or:
url_for
Neither would have worked in isolation before
required a :controller and :action_prefix required an :action)
* Started process of a cleaner separation between Action Controller and
ERb-based Action Views by introducing an abstract base class for views.
And Amita adapter could be fitted in more easily now.
* The date helper methods date_select and datetime_select now also use
the field error wrapping (div with class fieldWithErrors by default).
* The date helper methods date_select and datetime_select can now
discard selects
* Added option on AbstractTemplate to specify a different field error
wrapping. Example:
ActionView::AbstractTemplate.field_error_proc = Proc.new do |html,
instance|
"<p>#{instance.method_name + instance.error_message}</p><div
style='background-color: red'>#{html}</div>"
end
...would give the following on a Post#title (text field) error:
<p>Title can't be empty</p>
<div style='background-color: red'>
<input id="post_title" name="post[title]" size="30" type="text"
value="Hello World" />
</div>
* The UrlHelper methods url_for and link_to will now by default only
return paths, not complete URIs. That should make it easier to fit a
Rails application behind a proxy or load-balancer. You can overwrite
this by passing
by U235]
* Fixed bug with having your own layout for use with scaffolding [Kevin
Radloff]
* Fixed bug where redirect_to_path didn't append the port on
non-standard ports [dhawkins]
* Scaffolding plays nicely with single-table inheritance (LoadErrors
are caught) [Jeremy Kemper]
* Scaffolding plays nice with plural models like Category/categories
[Jeremy Kemper]
* Fixed missing suffix appending in scaffolding [Kevin Radloff]
Active Record 0.9.4: Bunch of Small Things
==========================================
This release contains a bunch of smaller fixes and improvements, such
as escaping of plings in YAML content, ids passed to find and
find_on_conditions are now automatically sanitized, and
has_and_belongs_to_many now accepts an
order the collection is returned.
* Added static method for instantly updating a record
* Treat decimal and numeric as Ruby floats [Andreas Schwartz]
* Treat chars as Ruby strings (fixes problem for Action Pack form
helpers too)
* Removed debugging output accidently left in (which would screw web
applications)
--
David Heinemeier Hansson,
http://www.rubyonrails.org/ -- Web-application framework for Ruby
http://www.instiki.org/ -- A No-Step-Three Wiki in Ruby
http://www.basecamphq.com/ -- Web-based Project Management
http://www.loudthinking.com/ -- Broadcasting Brain
http://www.nextangle.com/ -- Development & Consulting Services