【问题标题】:inherited_resources alternate create method forbiddenattributes继承的资源替代创建方法禁止属性
【发布时间】:2014-05-23 12:37:35
【问题描述】:

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

基本上,我想在创建后重定向到不同的页面,我使用一种方法得到了 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

【问题讨论】:

    标签: ruby-on-rails-4 inherited-resources


    【解决方案1】:

    我需要将完整的参数列表添加到我的 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]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多