I did search the list, and I found people have similar problems with Ruby 1.9.1, but not directly comparable to my issue. In my simple case it DOES work, as long as I use two controller actions instead of just the one...
Meanwhile.. yes, do do stick to Ruby 1.8.7 until I know more :o) Best regards, Rolf Fernando Perez wrote: > Hahaha! > > Search the list, and you'll notice that people have already fallen into > this trap. > > Wait 'til Rails 3 AND Ruby 1.9.2 get released to jump to Rails+Ruby1.9 > > Stick to Rails 2.3.8 and Ruby 1.8.7 until then. > On Sun, Aug 1, 2010 at 2:53 AM, Rolf Pedersen <[email protected]> wrote: > Hi > > First off, I'm using Ruby 1.9.1p378 and Rails 2.3.8. > > I was creating a minimal application to test handling of Norwegian special > characters when I bumped into this strange problem... > > I have a simple Car model with fields maker:string and model:string. > For the controller I planned to just have an index action do all the work: > class CarsController < ApplicationController > def index > if request.post? > @car = Car.new(params[:car]) > @car.save > end > @cars = Car.find(:all) > end > # def create > # @car = Car.new(params[:car]) > # @car.save > # redirect_to :action => :index > # end > end > > The corresponding view lists all car models and displays a form to support > the addition of new car models: > <h1>Cars</h1> > <table> > <th>maker</th><th>model</th> > <% @cars.each do |car| %> > <tr> > <td><%= car.maker %></td> > <td><%= car.model %></td> > <td> > <% end %> > </table> > > <% form_for(:car, :url => { :action => "index" }) do |f| %> > <p> > <%= f.label :maker %> > <%= f.text_field :maker %> > </p> > <p> > <%= f.label :model %> > <%= f.text_field :model %> > </p> > <p> > <%= f.submit 'Add' %> > </p> > <% end %> > > Now, this works fine..... until I submit special characters in one of the > fields. > If I for example write "Dodge" and "Børnout" in the form fields, I get an > error like this: > Encoding::CompatibilityError in Cars#index > > Showing *app/views/cars/index.html.erb* where line *#19* raised: > > incompatible character encodings: UTF-8 and ASCII-8BIT > > Extracted source (around line *#19*): > > 16: </p> > 17: <p> > 18: <%= f.label :model %> > 19: <%= f.text_field :model %> > 20: </p> > 21: <p> > 22: <%= f.submit 'Add' %> > > > But, the entry is added correctly to the database anyway, so if I just > reload http://localhost:3000/cars, I do see the new entry. > OK, I thought... I've read quite a few places that there have been (and > still are) various issues with support for Unicode in the different > Ruby/Rails version combinations, so I figured that I just didn't have the > best combination for this. > But then I temporarily built a new application by using generate scaffold, > and it all works fine there. > After some trying and failing I discovered that if I (in my original > solution) changed the form_for :url option to :action => "create" and added > a create action in the controller file (commented out in the above > controller source), it works with special characters and all. > > So the only difference is that the form posts the data to the create action > instead of the index action, and then it works. > > I just don't get it! :o/ > > Anyone has an explanation to offer? > Would be much appreciated! :o) > > Kind regards, > Rolf > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

