我有一个需要参数的控制器动作,必须通过get和post访问。 看起来像是:
get 'cart/add:id,:qty' => 'cart#add', as: :addToCart
控制器操作是:
def add
product = Product.find(params[:id])
if ::AddToCart.new(@cart, product, params[:qty]).execute
flash[:succes] = "Product(s) added."
else
flash[:failure] = "Product cannot be added."
end
redirect_to request.referer
end
如果我希望它使用相同的动作,后期路线应该如何。
PS:当只添加一个产品时,我将get版本用作link_to,因为数量未知,所以需要发布路径
答案 0 :(得分:0)
你应该严格把它作为一个后期路线。如果需要,可以在未提供数量时将数量默认为1。或者,当他们点击&#34时,使用ajax发布到数量为1的路线;添加一个"链接。这样它看起来就像是一个常规的link_to类型的链接,但是你仍然只能通过POST更新数据并让你所有的实际GET请求都是幂等的。