【问题标题】:model can save strong params in rails模型可以在rails中保存强大的参数
【发布时间】:2017-11-12 22:03:21
【问题描述】:
我做了一个方法将控制器的参数保存在模型中,但我不能将它们包含在模型中,创建的语法是什么
我用过
在控制器中
Product.create_product(product_params, @user)
在模型中
def self.create_product(params [:name, :portions, :whashed], user)
但是这个方法不保存
【问题讨论】:
标签:
ruby-on-rails
parameters
model
【解决方案1】:
您可以使用以下代码执行此操作:
在控制器中:
product = Product.new(product_params) #product_params is a function that return a hash with details of product
product.user = @user # or current_user if you are using Devise gem
product.save!
如果你想按照自己的方式做,那么你可以试试这个
在产品模型中
def self.create_product(product_params,user)
product = Product.new(product_params)
product.user = user
product.save!
end
在控制器中:
def create #Method corresponding to your action
Product.create_product(product_params, @user)
end
private
def product_params
params.require(:product).permit(:name, :portions, :whashed) #Assuming you are using form_for tag
end
【解决方案2】:
@product = Product.new(product_params)
@product.save
@kind = Kind.where(user_id: user).last
@product.update(kind_id: @kind.id)