On Oct 27, 8:22 am, Han Holl <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I have the following situation:
>   class Film < Sequel::Model
>     KEYS = {
>       :tijd => :time,
>       :zender => :text,
>       :title => :text,
>       :director => :text,
>       :top250 => :integer,
>       :rating => :float,
>       :votes  => :integer,
>       :ebert  => :float,
>       :users => :float,
>       :eberturl => :text,
>       :nreviews  => :integer,
>       :url => :text
>     }
>     set_schema do
>       KEYS.each_pair do |elem, type|
>         column elem, type
>       end
>       index([:tijd, :zender], { :unique => true })
>     end
>     set_primary_key [:tijd, :zender]
>
> given a hash, newval with symbols as keys,
>
>         film = Film.create(newval)
> and
>         film = Film.create(newval){}
>
> both don't work:
> /usr/lib64/ruby/gems/1.8/gems/sequel-2.6.0/lib/sequel_model/record.rb:
> 500:in `set_restricted': method tijd= doesn't exist or access is
> restricted to it (Sequel::Error)
> (It probably has to do with the fact that tijd is part of the primary
> key).
>
>         film = Film.create do |f|
>           f = newval
>         end
>  doesn't work either, but doesn't raise an exception either. Instead
> is generates the following SQL:
> INSERT INTO `films` DEFAULT VALUES
> SELECT * FROM `films` WHERE ((`tijd` IS NULL) AND (`zender` IS NULL))
> LIMIT 1
>
> Finally:
>         film = Film.create do |f|
>           newval.each_pair do |k, v|
>             f[k] = v
>           end
>         end
>
> works as expected.
>
> Have I misread the documentation, and is  film = Film.create(newval)
> expected not to work, or is this something to follow up ?

Primary key fields are restricted by default.  Use
Film.unrestrict_primary_key.

Jeremy
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sequel-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/sequel-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to