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.