On Friday, November 1, 2019 at 8:53:01 AM UTC-4, Walter Lee Davis wrote:
>
>
>
> > On Nov 1, 2019, at 2:12 AM, fugee ohu <fuge...@gmail.com <javascript:>> 
> wrote: 
> > 
> > 
> > 
> > On Friday, November 1, 2019 at 12:12:18 AM UTC-4, Ariel Juodziukynas 
> wrote: 
> > If you have: 
> > item has_many item_item_properties 
> > item_item_property belongs_to item_property 
> > 
> > then you can add a relationship on the item model 
> > 
> > has_many :item_properties, through: :item_item_properties 
> > 
> > Then you'll be able to call @item.item_properties to loop through the 
> ItemProperty objects associated to that Item object. 
> > 
> > Now, you say @item.item_item_properties.pluck(:item_property_id) returns 
> an empty array, that's because the Item does not have associated properties 
> and pluck does an SQL. 
> > 
> > El vie., 1 nov. 2019 a las 0:52, fugee ohu (<fuge...@gmail.com>) 
> escribió: 
> > 
> > 
> > On Thursday, October 31, 2019 at 11:32:22 PM UTC-4, Ariel Juodziukynas 
> wrote: 
> > You can do @item.item_item_properties.each do |item_item_property| and 
> handle that object inside the loop, I'm not sure why would you expect that 
> item_item_properties relationship to return key, value pairs. I don't 
> understand what you want to achieve, maybe you are trying to do it on the 
> wrong path. 
> > 
> > El vie., 1 nov. 2019 a las 0:27, fugee ohu (<fuge...@gmail.com>) 
> escribió: 
> > 
> > 
> > On Thursday, October 31, 2019 at 9:33:22 PM UTC-4, Ariel Juodziukynas 
> wrote: 
> > @item.item_item_properties returns a collection of objects, you are 
> calling a method on something array-like, it makes no sense. 
> > 
> > If you want to get all the item_property_ids you can do 
> @item.item_item_properties.pluck(:item_property_id) for example. I'm not 
> sure what you want to achieve. 
> > 
> > El jue., 31 oct. 2019 a las 22:29, fugee ohu (<fuge...@gmail.com>) 
> escribió: 
> > 
> > 
> > On Thursday, October 31, 2019 at 2:15:48 PM UTC-4, Ariel Juodziukynas 
> wrote: 
> > Use `.size` instead of `.count`. "count" does a database query and since 
> you only built the element the COUNT db query will return 0. "size" knows 
> what to do if the association is already initialized so it will return "1" 
> in your case (and if it's not already loaded it will run a COUNT db query). 
> > 
> > El jue., 31 oct. 2019 a las 8:42, fugee ohu (<fuge...@gmail.com>) 
> escribió: 
> > > @item=Item.new 
> > > @item.item_item_properties.build 
> > > @item.item_item_properties.count 
> >  => 0 
> > 
> > Why doesn't my @item object have any item_item_properties after build 
> method 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonra...@googlegroups.com. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/161b90ed-b6b1-4d4d-9f67-fb70f0463621%40googlegroups.com.
>  
>
> > 
> > How do I reference individual columns? 
> >  2.3.3 :006 > @item.item_item_properties.item_property_id 
> > NoMethodError: undefined method `item_property_id' for 
> #<ItemItemProperty::ActiveRecord_Associations_CollectionProxy:0x0055d4167fd628>
>  
>
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonra...@googlegroups.com. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/a80b3961-82df-4943-9e5a-adb764d516b7%40googlegroups.com.
>  
>
> > 
> > Could I directly access key, value without pluck or otherwise like 
> >  @item.item_item_properties.each do |key, value| 
> > item_property_id 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonra...@googlegroups.com. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/b2057f01-80e0-4816-8893-b783e30159f8%40googlegroups.com.
>  
>
> > 
> > Display item_property attributes in form 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonra...@googlegroups.com. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/3a2c3dcf-3b21-49c9-8e49-9b2f276d7b6d%40googlegroups.com.
>  
>
> > 
> > There are no database records yet, we know, the object was instantiated 
> by the build method but so far I don't see how to read it's data for my 
> views 
> > 
>
> You're trying to build a nested form, with the possibility of adding N 
> children to the parent form. When you build a new child object in memory, 
> you need to create a form for that object dynamically. There's a Railscast 
> about this idea, which you may find useful: 
> http://media.railscasts.com/assets/episodes/videos/196-nested-model-form-revised.mp4
>  
>
> Here's a link to the article about that screencast: 
> http://railscasts.com/episodes/196-nested-model-form-revised 
>
> Please note that these videos are very old, and the specific details may 
> differ from modern Rails practice, but the ideas underlying them are sound, 
> and still hold up today. 
>
> Walter 
>
>
  def new
        @item = Item.new(item_params)
        ItemProperty.where(item_type: params[:item][:item_type]).each do 
|ip| 
            @item.item_item_properties.build(item_property_id: ip.id)
        end
end

Then trying to reference @item.item_item_properties.item_property_id 
returns error:
NoMethodError: undefined method `item_property_id' for 
#<ItemItemProperty::ActiveRecord_Associations_CollectionProxy:0x0056269f53ab08>


-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/adbe5063-5278-4680-b50f-27ecf4e5f339%40googlegroups.com.

Reply via email to