模型可以在轨道中保存强大的参数

时间:2017-11-12 22:03:22

标签: ruby-on-rails parameters model

我创建了一个方法来保存模型中控制器的参数,但我不能将它们包含在模型中,创建的语法是什么 我用了

在控制器中

Product.create_product(product_params, @user)

并在模型中

def self.create_product(params [:name, :portions, :whashed], user)

但这种方法不能保存

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

      @product = Product.new(product_params)    
   @product.save           
  @kind = Kind.where(user_id: user).last
  @product.update(kind_id: @kind.id)