我有一个叫Wish的模型:
class Wish < ApplicationRecord
belongs_to :user
has_one :global_product
validates :global_product_id, presence: true
validates :user_id, presence: true
end
以下是心愿路线:
user_wishes GET /users/:user_id/wishes(.:format) wishes#index
POST /users/:user_id/wishes(.:format) wishes#create
new_user_wish GET /users/:user_id/wishes/new(.:format) wishes#new
edit_user_wish GET /users/:user_id/wishes/:id/edit(.:format) wishes#edit
user_wish GET /users/:user_id/wishes/:id(.:format) wishes#show
PATCH /users/:user_id/wishes/:id(.:format) wishes#update
PUT /users/:user_id/wishes/:id(.:format) wishes#update
DELETE /users/:user_id/wishes/:id(.:format) wishes#destroy
根据路线,我认为所需的参数是user\u id和global\u product\u id:
<%= link_to 'Add this product to my wish list', user_wishes_path(:global_product_id => @global_product.id,
:user_id => current_user.id),
:method=> :post,
class: "btn btn-default" %>
在wish控制器中,以下是create方法和wish参数:
def create
@wish = Wish.new(wish_params)
@wish.save
if @wish.save
redirect_to 'index'
else
render 'new'
end
end
def wish_params
params.require(:wish).permit(:global_product_id, :user_id)
end
以下是我上次请求中的确切错误:
Parameters: {"authenticity_token"=>"y1vzGG5+CoyGS4XAFJ6sQPlD5XyNRfSMA14r4lWsUh3N1FA8Uz/Q7HNUMWOpsPQyBILgpjVxJCM552757yNsjw==", "global_product_id"=>"25", "user_id"=>"1"}
Completed 400 Bad Request in 1ms (ActiveRecord: 0.0ms)
我不确定这个请求有什么问题,因为在rails控制台中,我可以使用愿望.创造(用户标识:1,全局产品标识:25)。我试着把愿望和全球产品传递到我的链接请求,但同样的错误,看起来我不需要这些。所需的只是失败请求中的用户标识和全局产品标识。