我在railsapi中有两个模型(页面和图像),它们之间有多对多关系。我希望能够在页面模型的两个(最终更多)位置引用图像模型(通过图像id:[])。
我想要一个“图像画廊”数组和一个“特色图像”数组返回,我有什么将是画廊的工作,因为它应该现在,但我正在努力理解从这里去哪里。这有可能吗?
我觉得这不应该像我所做的那样复杂,所以我真的很感谢任何帮助-我是一个新的开发人员和新的rails。这就是我想要的:
"id": 34,
"title": "Test Page Gallery",
"featured_image": [
"images": [
{
"id": 12,
"title": "test img 2",
"image": {
"url": "/uploads/medium/image/11/image2.jpeg"
}
]
],
"images": [
{
"id": 11,
"title": "test img 1",
"image": {
"url": "/uploads/image/image/11/image1.jpeg"
}, ....
]
这就是我得到的:
"id": 34,
"title": "Test Page Gallery",
"featured_image": "[]",
"images": [
{
"id": 11,
"title": "test img 1",
"image": {
"url": "/uploads/image/image/11/image.jpeg"
}, ....
]
强参数:
def page_params
params.permit(:title, image_ids:[], featured_image: [image_ids:[]])
end
页面模型:
class Page < ApplicationRecord
belongs_to :user
has_and_belongs_to_many :images, class_name: "Image", join_table: "images_pages"
end
我将图像列定义为字符串,但我知道这可能是错误的。提前谢谢!
1条答案
按热度按时间ukqbszuj1#
我想你有两种方法:
1) 有两个独立的关联,指定
Image
的类名featured_images
:页码.rb
2) 使用
has_many through
关联并在联接表上具有标志,无论图像是否具有特征:页码.rb
图片页面.rb
关于后一种方法的快速阅读。
我总是喜欢一个灵活的
has_many through
关系。玩一玩这些,看看其中一个是否有帮助-如果有任何问题,请告诉我,我将看看如何定制/扩展:)