Ruby on rails 控制器规格及规格;强参数

Ruby on rails 控制器规格及规格;强参数,ruby-on-rails,ruby-on-rails-4,rspec,rspec-rails,strong-parameters,Ruby On Rails,Ruby On Rails 4,Rspec,Rspec Rails,Strong Parameters,非常基本的控制器规格失败,因为我的强参数设置不可靠 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 OrdersContro

非常基本的控制器规格失败,因为我的强参数设置不可靠

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: "test@example.com"}
  end
end
结果:

Failure/Error: post :create, order: {email: "test@example.com"}
 NoMethodError:
   undefined method `and_permit' for {"email"=>"test@example.com"}:ActionController::Parameters

jvnill对原始帖子的评论一针见血,它是
permit
而不是
和_permit

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

jvnill对原始帖子的评论一针见血,它是
permit
而不是
和_permit

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

是不是应该是
.permit
?是不是应该是
.permit
?嗯,在你考虑为
参数创建别名之前,你不会喝得太多。。。那你就知道你已经喝得太多了。嗯,在你考虑为
参数#permit
to
参数#和_permit
创建一个别名之前,你还没醉到极点。。。那你就知道你吃的太多了。