I'm sorry, I just glanced at the question. I'm not super familiar
with DM's facility for has_many_through relationships. I would try
Url.all('categories'.id => catID) or
Url.all('categorization.category_id' => catID)
I could be way off here though :)
Chris
On Tue, Apr 21, 2009 at 12:27 AM, Dan D <[email protected]> wrote:
>
> Thanks, but didn't work.
>
> irb(main):064:0> urls = Url.all(:category_id => catID)
> ArgumentError: Unknown property 'category_id'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
> 462:in `append_condition'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
> 246:in `initialize'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
> 245:in `each'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
> 245:in `initialize'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
> 431:in `new'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
> 431:in `scoped_query'
> from /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
> 256:in `all'
> from (irb):64
>
>
> irb(main):065:0> urls = Url.all(:category_id => 1)
> ArgumentError: Unknown property 'category_id'
>
>
>
> On Apr 20, 11:01 pm, Chris Van Pelt <[email protected]> wrote:
>> urls = Url.all(:category => catID)
>>
>> Should be:
>>
>> urls = Url.all(:category_id => catID)
>>
>> On Mon, Apr 20, 2009 at 10:44 PM, Dan D <[email protected]> wrote:
>>
>> > Please help, I'm sure I'm over looking something silly, but I cannot
>> > query by category. Everything works great except the last line returns
>> > " Unknown property 'category'" error. Same if I use the (:conditions
>> > => ...... ) syntax.
>>
>> > Thanks,
>> > Dan
>>
>> > require 'rubygems'
>> > require 'dm-core'
>>
>> > DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/test.sqlite3")
>>
>> > DataMapper::Logger.new(STDOUT, :debug)
>> > # :off, :fatal, :error, :warn, :info, :debug
>> > DataObjects::Sqlite3.logger = DataObjects::Logger.new(STDOUT, 0)
>>
>> > class Url
>> > include DataMapper::Resource
>>
>> > property :id, Integer, :serial => true
>> > property :url, Text, :nullable => false
>>
>> > has n, :categorizations
>> > has n, :categories,
>> > :through => :categorizations,
>> > :class_name => 'Category',
>> > :mutable => true
>> > end
>>
>> > class Category
>> > include DataMapper::Resource
>> > property :id, Serial
>> > property :name, String
>>
>> > has n, :categorizations
>> > has n, :urls, :through => :categorizations, :mutable => true
>> > end
>>
>> > class Categorization
>> > include DataMapper::Resource
>> > property :id, Serial
>>
>> > belongs_to :category
>> > belongs_to :url
>> > end
>>
>> > DataMapper.auto_migrate!
>>
>> > cat1 = Category.new
>> > cat1.name = "Cat1"
>> > cat1.save
>>
>> > cat2 = Category.new
>> > cat2.name = "Cat2"
>> > cat2.save
>>
>> > Category.all
>>
>> > url1 = Url.new
>> > url1.url = "http://yahoo.com"
>> > url1.save
>>
>> > url2 = Url.new
>> > url2.url = "http://google.com"
>> > url2.save
>>
>> > catID = Category.first.id
>> > urlID = Url.first.id
>>
>> > Categorization.create(:category_id => catID, :url_id => urlID)
>>
>> > urls = Url.all(:category => catID)
>> > ArgumentError: Unknown property 'category'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
>> > 462:in `append_condition'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
>> > 246:in `initialize'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
>> > 245:in `each'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/query.rb:
>> > 245:in `initialize'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
>> > 431:in `new'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
>> > 431:in `scoped_query'
>> > from
>> > /usr/lib/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/model.rb:
>> > 256:in `all'
>> > from (irb):66
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"DataMapper" 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/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---