0
我有2個型號,一個通過關係:副模型和更新屬性
PortfolioItem
has_many :portfolio_item_images
has_many :images, :through => :portfolio_item_images
PortfolioItemImage
belongs_to :image
belongs_to :portfolio_item
我想投資組合項目圖像組合項關聯,並設定了投資組合的物品圖像的位置。
現在我在做這樣的:
i13 = PortfolioItem.create({:name => 'Portfolio Item 1'})
i13_img01 = Image.find_by_image_name('Portfolio_Item_Image.jpg')
i13.images << i13_img01
i13_portimg01 = i13.portfolio_item_images.find_by_image_id(i13_img01.id)
i13_portimg01.update_attributes(:position => 1)
這是頗爲曲折,因爲我設置的關係,然後通過記錄從我的圖片ID查找,然後設置在投資組合中的位置項目圖像。
我有一種感覺,有一個更清潔的Ruby/Rails的方式與ActiveRecord這樣做。但我沒有在Google上找到任何內容。每次我谷歌協會,它通常是彈出的Rails指南,我找不到那裏的信息。
另外,我對Image模型沒有太多的控制。
謝謝你的時間!
更新: 該圖片以前也是創建。所以我不能通過PortfolioItem創建它,然後添加屬性。謝謝!
嗨阿德里安,感謝您的輸入。但是,圖像對象是以前創建的。我將編輯我的問題來突出顯示。再次感謝! –
我沒有試圖創建圖像對象,我仍然像你一樣使用'Image.find_by_image_name'。 –
謝謝! –