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
创建一个别名之前,你还没醉到极点。。。那你就知道你吃的太多了。