Rails 3.0.5 gives SQLite3::SQLException for the same code that works on 3.0.3

Hello,
I recently updated Rails to 3.0.5. The very same code that worked on
3.0.3 now gives error.
The code is:
def kategorialista
Kategoria.where(:elfogadva => TRUE).order(“nev”).collect {|s|
[s.nev, s.sefuri]}
end

It is in application_controller.rb with
helper_method :kategorialista

The error it gives on 3.0.5:
SQLite3::SQLException: no such table: kategoria: SELECT “kategoria”.*
FROM “kategoria” WHERE “kategoria”.“elfogadva” = ‘t’ ORDER BY nev

Obviously there is no such table as kategoria, but there is
kategorias table in SQLite.

The relevant part of the schema, as generated:

create_table “kategorias”, :force => true do |t|
t.string “nev”
t.string “leiras”
t.boolean “elfogadva”, :default => false
t.string “sefuri”
t.datetime “created_at”
t.datetime “updated_at”
end

Long story short: what was changed, and how to make my code work? And
why this is not mentioned in changelogs?

Thanks a lot,
WSzP

On Apr 5, 12:48pm, WSzP [email protected] wrote:

helper_method :kategorialista
create_table “kategorias”, :force => true do |t|
t.string “nev”
t.string “leiras”
t.boolean “elfogadva”, :default => false
t.string “sefuri”
t.datetime “created_at”
t.datetime “updated_at”
end

Long story short: what was changed, and how to make my code work? And
why this is not mentioned in changelogs?

Looks like the inflection rules were tweaked leading rails (https://
github.com/rails/rails/commit/e925acb8 ) to think that kategoria is
pluralized to kategoria (ie that it’s already a plural, like stadia).
The best thing is probably to add an inflection rule to pluralize
kategoria to kategorias.

Fred

On 5 April 2011 13:22, WSzP [email protected] wrote:

That’s great to know, but please, can you tell me how to add
inflection rule? Or how do I explicitly tell Rails to use that
specific table?

Have a look at config/initializers/inflections.rb
Google will provide some examples if you cannot work out exactly what
to put there.

Colin

Thanks a lot,
Colin L. told me the solution. If anyone else has similar problem,
the solution was adding:

ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular ‘kategoria’, ‘kategorias’
end

to the config/initializers/inflections.rb file.
Thanks again.
WSzP

That’s great to know, but please, can you tell me how to add
inflection rule? Or how do I explicitly tell Rails to use that
specific table?
Thanks a lot,
Peter

On Apr 5, 3:11pm, Frederick C. [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs