【问题标题】:Rails 4 Error: Extract Param from URLRails 4 错误:从 URL 中提取参数
【发布时间】:2017-01-19 04:24:20
【问题描述】:

我很难从这个网址中获取 id 参数:

http://localhost:3000/subscriberjobs/new?job_id=13

目前我正在使用这行代码来获取它:

@job = Job.find(params[:id])

这一行指向那个:

redirect_to "/subscriberjobs/new?job_id=#{@job.id}"

非常感谢任何有关如何实现我想要做的事情的帮助!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 hyperlink controller


    【解决方案1】:

    您已将参数设置为 job_id 而不是 id

    改变这个

    @job = Job.find(params[:id])
    

    到这里

    @job = Job.find(params[:job_id])
    

    【讨论】:

    • 已经测试过了,得到这个错误:ActiveRecord::RecordNotFound in SubscriberjobsController#update Couldn't find Job with 'id'=
    • 如果我将所有内容更改为 id 而不是 job_id 我不会收到任何错误,但它会提取错误(或没有)ID。所以我对Job.find(params[:id]) 的一般做法一定是错误的
    【解决方案2】:

    如果查询参数是job_id,那么你需要使用params[:job_id],就像MilesStanfield 说的那样,但是你确定要使用带有id 的new 路由吗?如果您正在尝试编辑现有的订阅者作业,则路径可能应该是 http://localhost:3000/subscriberjobs/13/edit,然后在 SubscriberJobsController#edit 中,您将使用 params[:id]。如果您需要重定向到作业的编辑表单,您还可以使用路径助手redirect_to edit_subscriberjobs_path(@job)。有关路由的更多信息: http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions

    【讨论】:

    • 感谢您的回答!问题是没有 SubscriberJob 模型。它只是一个控制器,用于将 Job 设置为活动并集成条带以进行支付。
    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多