2017-11-12 5 views
-2

ich eine Methode macht die Parameter des Reglers im Modell zu speichern, aber ich kann sie in dem Modell nicht enthalten, was ist die Syntax der IModell kann in starke params speichern Schienen

verwendet erstellen zu tun in der Steuerung

Product.create_product(product_params, @user) 

und im Modell

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

aber diese Methode nicht speichern

Antwort

1

Sie können dies mit diesem Code tun:

In Controller:

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! 

Wenn Sie es Ihren Weg machen wollen, dann können Sie versuchen, diese

In Produktmodell

def self.create_product(product_params,user) 
    product = Product.new(product_params) 
    product.user = user 
    product.save! 
end 

Und im Controller:

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 
+0

Ich benutze Benutzer für andere Parameter, die ich brauche – frtgu34

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