【发布时间】:2018-12-06 02:16:40
【问题描述】:
我正在尝试开发一种模型,在该模型中,用户可以将他们正在查看的食谱添加到他们创建的现有食谱菜单中,类似于将歌曲添加到自定义播放列表中。我相信我已经正确设置了模型(使用多对多通过关系)但是我不确定如何将实际记录添加到选定的集合中。任何指导都会有所帮助。我的代码如下。
菜单控制器
class MenusController < ApplicationController
before_action :set_search
def show
@menu = Menu.find(params[:id])
end
def new
@menu = Menu.new
end
def edit
@menu = Menu.find(params[:id])
end
def create
@menu = current_user.menus.new(menu_params)
if @menu.save
redirect_to @menu
else
render 'new'
end
end
def update
@menu = Menu.find(params[:id])
if @menu.update(menu_params)
redirect_to @menu
else
render 'edit'
end
end
def destroy
@menu = Menu.find(params[:id])
@menu.destroy
redirect_to recipes_path
end
private
def menu_params
params.require(:menu).permit(:title)
end
end
菜单模型
class Menu < ApplicationRecord
belongs_to :user
has_many :menu_recipes
has_many :recipes, through: :menu_recipes
end
menu_recipe 模型
class MenuRecipe < ApplicationRecord
belongs_to :menu
belongs_to :recipe
end
配方模型
class Recipe < ApplicationRecord
belongs_to :user
has_one_attached :cover
has_many :menu_recipes
has_many :menus, through: :menu_recipes
end
用户模型
class User < ApplicationRecord
has_secure_password
has_one_attached :profile_image
has_many :recipes
has_many :menus
end
【问题讨论】:
标签: ruby-on-rails ruby model controller associations