0

我有两个创建方法(也许结构更好,但继承资源是新的)

基本上,我想在创建后重定向到不同的页面,我使用一种方法得到了 ForbiddenAttributes 错误,但不是原始的 Create 操作,我猜有一些特殊的方法可以使用 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

4

1 回答 1

0

我需要将完整的参数列表添加到我的 manage_create 函数中——我完全不知道为什么它不使用现有的 allowed_pa​​rams 方法。

  @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]))
于 2014-05-28T10:30:00.737 回答