1

Очень простая спецификация контроллера, потому что что-то с моими сильными параметрами настроено неудобно? КодСпецификация контроллера и сильные параметры

class OrdersController 
    def create 
    @order = Order.new(order_params) 
    if @order.valid? 
     ... 
    end 

    private 
    def order_params 
    params.require(:order).and_permit(:email) 
    end 
end 

Тест:

describe OrdersController, "Create action", type: :controller do 
    it "should call valid? method" do 
    Order.any_instance.should_receive(:valid?) 
    post :create, order: {email: "[email protected]"} 
    end 
end 

Результат:

Failure/Error: post :create, order: {email: "[email protected]"} 
NoMethodError: 
    undefined method `and_permit' for {"email"=>"[email protected]"}:ActionController::Parameters 
+0

Не должен ли это быть «.permit»? – jvnill

ответ

0

комментарий на исходное сообщение от jvnill ударил гвоздь по голове, это permitнеand_permit

params.require(:order).permit(:email) 
+0

глупые ошибки вроде этого удивляются, если иногда я пьян ... – james

+0

Мех, вы не слишком пьяны, пока не созерцаете создание псевдонима для 'Parameters # allow' to' Parameters # and_permit' ... тогда вы знаете, что вы У меня было слишком много. –