【问题标题】:Rails 4 Error: How to get parameters from URLRails 4 错误:如何从 URL 获取参数
【发布时间】:2016-09-12 11:10:49
【问题描述】:

我对 Rails 还很陌生,我正在努力从这个 url 中获取 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 url parameters


    【解决方案1】:

    试试这个, 替换这一行

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

    用这条线

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

    你会得到你的实例变量@job 填充有job_id 的记录。

    【讨论】:

    • 是的,这确实应该有效。但是当我这样做时,我得到了这个错误:ActiveRecord::RecordNotFound in SubscriberjobsController#update Couldn't find Job with 'id'= 所以它在这种情况下以某种方式错过了它的 id:13
    • 这是您的数据库/表中不存在记录的情况。你得到什么?击中参数时
    • 我想我知道为什么这不起作用。从我的 new_job 表单它跳转到这个 url:http://localhost:3000/subscriberjobs/new?job_id=13。然后在你完成付款后,它会指向这个 url:http://localhost:3000/subscriberjobs/1(这不起作用,因为这个模型不存在)然后检查 job_id 显然等于 nil
    【解决方案2】:

    你试过了吗

    url    = 'http://www.foo.com?id=4&empid=6'
    uri    = URI.parse(url)
    params = CGI.parse(uri.query)
    # params is now {"id"=>["4"], "empid"=>["6"]}
    
    id     = params['id'].first
    

    您可以查看另一个帖子 here 以获得更多描述。

    【讨论】:

    • 嗯...吐出这个错误:NoMethodError in SubscriberjobsController#update undefined method split' for nil:NilClass`
    • 此外,它使"id"=>"1"} 出每个 id
    • 那你需要检查数据库中是否存在该记录。
    • 有一点。每次通过条带付款后跳转到/subscriberjobs/1。记录存在于 Jobs
    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 2018-02-10
    • 2016-04-27
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多