【问题标题】:Rails controller isn't getting specific paramsRails 控制器没有获得特定的参数
【发布时间】:2020-05-03 10:59:36
【问题描述】:

我正在尝试按照 wicked 教程部分创建对象 (https://github.com/zombocom/wicked/wiki/Building-Partial-Objects-Step-by-Step)

问题是,我无法创建对象本身。我尝试过使用和不使用强参数,甚至从控制器中发出调用,但可以让它通过。我做错了什么?

class ProspectsController < ApplicationController
  include Wicked::Wizard

  steps :signup, :business_details, :user_details

  def show
    create_prospect if params[:prospect_id].nil?
    byebug # => prospect_id is no appearing =>  Not_found
    @prospect = Prospect.find(params[:prospect_id])
    render_wizard
  end

  def update
    @prospect = Prospect.find(params[:prospect_id])
    params[:prospect][:status] = 'users_detailed' if step == steps.last
    @prospect.update_attributes(params[:prospect])
    render_wizard @prospect
  end

  def create_prospect
    @prospect = Prospect.create
    new_prospect_build_path(prospect_id: @prospect.id)
  end

  # def prospect_params
  #   params.require(:prospect).
  #     permit(:user_first_name, :user_last_name, :user_email, :dni, :plan, :empresa_name, :empresa_email,
  #        :empresa_phone, :empresa_address, :empresa_web, :empresa_category, :empresa_summary, :user_birthday,
  #      :user_phone, :user_address, :sex, :iban_code, :status, :prospect_id)
  # end
end

路线:

  resources :prospects, only: [:show, :update] do
    resources :build, controller: 'prospects'
  end

【问题讨论】:

  • rake routes的帖子输出
  • 信息更新
  • 您对两条路线使用相同的控制器操作:

标签: ruby-on-rails routes parameter-passing wicked-gem


【解决方案1】:

您对两条路线使用相同的控制器操作:

GET /prospects/:prospect_id/build/:id => prospects#show

GET /prospects/:id => prospects#show

与更新相同。 如果您将通过GET prospect_path 到达该控制器,您将不会获得:prospect_id,而是:id

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多