【发布时间】:2020-04-02 00:12:48
【问题描述】:
我有控制器和表单,但是当我尝试提交表单时,它没有向控制器提交值。
表格:
= form_for @cart do |f|
.overflow
- unless @product.equipment_payments.blank?
| Equipment Payment Option
br
= f.select :equipment_payments, options_for_select(@product.equipment_payments), {:prompt => 'Price'}
br
br
- if @product.product_plan_durations.count > 0
- plan_durations = PlanDuration.where(id: @product.product_plan_durations.pluck(:plan_duration_id))
| Product Plan Duration
br
= f.select :product_plan_duration_id, options_from_collection_for_select(plan_durations, :id, :name), {:prompt => 'Plan Duration'}
br
br
.modal-footer.form-group
= f.submit "Add to Cart"
CartsController
class CartsController < ApplicationController
before_action :load_product
def new
@cart = Cart.new
end
def create
@cart = Cart.new(cart_params)
@cart.save
end
private
def cart_params
params.require(:cart).permit(:equipment_payments, :product_plan_duration_id)
end
def load_product
@product = Product.find(params[:product_id])
end
end
1:04:40 AM web.1 | Started POST "/carts" for ::1 at 2019-12-09 01:04:40 +0500
1:04:40 AM web.1 | Processing by CartsController#create as HTML
1:04:40 AM web.1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"c9TcwAMtRp6MyYbgxeAcrjcklHeIFxwFmX7vhgEB5Cig8iikCE9ycSmEgfmwLEIL6myLWpQiqV5MS9WN6iMkrw==", "cart"=>{"equipment_payments"=>"Lease", "product_plan_duration_id"=>"4"}, "commit"=>"Add to Cart"}
1:04:40 AM web.1 | User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 36], ["LIMIT", 1]]
1:04:40 AM web.1 | Redirected to http://localhost:3000/product_search?utf8=%E2%9C%93&product_search_form%5Bc%5D=3&product_search_form%5Bsc%5D=105&product_search_form%5Bq%5D=&commit=Search
1:04:40 AM web.1 | Completed 302 Found in 7ms (ActiveRecord: 0.8ms)
1:04:40 AM web.1 | Started GET "/product_search?utf8=%E2%9C%93&product_search_form%5Bc%5D=3&product_search_form%5Bsc%5D=105&product_search_form%5Bq%5D=&commit=Search" for ::1 at 2019-12-09 01:04:40 +0500
1:04:40 AM web.1 | Processing by ProductSearchController#index as HTML
1:04:40 AM web.1 | Parameters: {"utf8"=>"✓", "product_search_form"=>{"c"=>"3", "sc"=>"105", "q"=>""}, "commit"=>"Search"}
routes.rb
resources :carts
我从中加载表单的链接:
= link_to 'Add to Cart', new_cart_path(product_id: product.id), remote: true
问题是它只是提交数据,但它没有在 Carts 控制器的 create 方法中命中。
【问题讨论】:
-
你说它不是“击中” create 方法,但我看到了这个:
Processing by CartsController#create as HTML。事务日志的其余部分是什么样的?也许有一个rollback,因为Cart应该是belong_to一个User或类似的东西? -
@jvillian 我的购物车模型是空的。
-
我不知道“我的购物车模型是空的”是什么意思。你能从你的服务器显示你的整个交易日志吗?仅显示您提供的两行是不够的。
-
请看一下。
-
@KickButtowski 我试过了,但没有按预期工作。那我发帖吧。
标签: ruby-on-rails ruby ruby-on-rails-5