Inherited_resources alternate创建方法forbiddenattributes



我有两个create方法(可能可以构造得更好,但对inherited_resources来说是新的)

基本上,我想在创建后重定向到不同的页面,我使用一种方法得到一个ForbiddenAttributes错误,但不是原来的创建操作,我猜有一些特殊的方法来使用IH,但我被这个难住了。

在我的第二个动作中,我需要手动分配参数-我猜我需要用IH的方式来做这件事,那一行是它爆炸的地方,所以问题是IH如何实现这一点而没有错误?

def create
  if can? :create, LeaveRequest
    create! { leave_requests_url }
  end  
end
def manage_create
  @leave_request = LeaveRequest.new(params[:leave_request])
  if can? :create, LeaveRequest
    create! { manage_leave_requests_url }
  end  
end
def permitted_params
  {:leave_request => params.fetch(:leave_request, {}).permit(:user_id, :controller, :manager_id, :part_day, :comment, :selected_dates, :status, :leave_type_id, leave_dates_attributes: 
      [:id, :leave_request_id, :hours, :date_requested, :_destroy])}
end

路由定义为

match 'manage_create', to: 'leave_requests#manage_create', as: :manage_create_leave_request, via: [:post]

我使用IH 1.4.1

我需要添加完整的参数列表到我的manage_create函数-我完全不知道为什么它不使用现有的permitted_params方法。

  @leave_request = LeaveRequest.new(params[:leave_request].permit(:user_id, :controller, :manager_id, :part_day, :comment, :selected_dates, :status, :leave_type_id, leave_dates_attributes: 
      [:id, :leave_request_id, :hours, :date_requested, :_destroy]))

相关内容

  • 没有找到相关文章