I caught the typos with the % sign after I posted. Still, as you said, that
wouldn't cause the error but rather just not destroy anything.
I am using DM_VERSION = "~> 1.2.0". Basically, I cut and pasted what's in
the dm-rails. I am not sure how you managed to make it work.
I have things working in a pure SQL way now, but any insight will be
helpful.
Thanks.
On Wednesday, August 22, 2012 6:52:20 PM UTC-4, Chris Corbyn wrote:
>
> Way less readable and elegant though ;) This is a bug. DataMapper should
> know that URI properties are dumped to strings, so that should be what it
> does when it generates the query.
>
> That said, your original query is wrong. It should have the '%' marks
> around the search string:
>
> person.photos.all(:url.like => '%amazon%').destroy
>
> What version of DM are you using? I just tried this with a model we use
> URI types on and it worked as expected. I tried it both directly on the
> model, and by going through a 1:m relationship. (DM 1.2.0).
>
>
> Il giorno 23/ago/2012, alle ore 03:14, Abe Voelker ha scritto:
>
> Also from your example it looks like DM is pulling in the url field as
> an Addressable::URI, so it is probably already fetching all the associated
> records from the DB in order to load them into memory to parse
> into Addressable::URI structures. If that's the case, then I don't think
> there would be any additional performance overhead from what you originally
> had to just doing
>
> person.photos.all.select{|photo| photo.url.host.downcase == 'amazon.com'}
>
> On Wednesday, August 22, 2012 12:01:05 PM UTC-5, Abe Voelker wrote:
>>
>> Is this too SQL-ish?
>>
>> person.photos.all(:conditions => ['"url" ilike ?', "%amazon%"])
>>
>> On Wednesday, August 22, 2012 11:48:23 AM UTC-5, Neil C wrote:
>>>
>>> Besides, obviously, a SQL solution.
>>>
>>> Thanks.
>>>
>>>
>>>
>>> On Wednesday, August 22, 2012 12:45:52 PM UTC-4, Neil C wrote:
>>>>
>>>> I am trying to do the following:
>>>>
>>>> person.photos.all(:url.like => "amazon").destroy
>>>>
>>>> As you might guess, 1 person has n photos, and each photo has a url
>>>> property. I am trying to remove any photos with "amazon" in the URL.
>>>>
>>>> When I do this, I get the following:
>>>>
>>>> NoMethodError: undefined method `gsub' for
>>>> #<Addressable::URI:0x3fc672305d40 URI:amazon>
>>>>
>>>> Any insight into solving this is appreciated.
>>>>
>>>> Thanks.
>>>>
>>>
> --
> You received this message because you are subscribed to the Google Groups
> "DataMapper" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/datamapper/-/K0BzmeduifoJ.
> To post to this group, send email to [email protected]<javascript:>
> .
> To unsubscribe from this group, send email to
> [email protected] <javascript:>.
> For more options, visit this group at
> http://groups.google.com/group/datamapper?hl=en.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"DataMapper" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/datamapper/-/tu1FnD7DyuwJ.
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.