inherited_resources альтернативный метод создания, запрещенные атрибуты

У меня есть два метода создания (возможно, они могли бы быть лучше структурированы, но новые для inherited_resources)

По сути, я хочу перенаправить на другую страницу после создания, я получаю ошибку 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]

Я использую ИХ 1.4.1


person Craig McGuff    schedule 23.05.2014    source источник


Ответы (1)


Мне нужно было добавить полный список параметров в мою функцию manage_create — я совершенно не понимаю, почему она не использует существующий метод allow_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]))
person Craig McGuff    schedule 28.05.2014