在用户通过条带成功付款后,我对rails很陌生并且在改变数据库值方面苦苦挣扎。此外,付款后,它会以某种方式将我重定向到每一次“&subscriber / subscriberjobs / 1'出现以下错误的位置。相反,它应该指向应用程序的root_path。
这是出现的错误:
ActiveRecord::RecordNotFound in SubscriberjobsController#update
Couldn't find Job with 'id'=
以下是我所得到的:
路线
resources :subscriberjobs
resources :jobs
乔布斯控制器
def new
if current_user
@job = current_user.jobs.build
else
redirect_to new_user_session_path
end
end
def create
@job = current_user.jobs.build(job_params)
if @job.save
redirect_to "/subscriberjobs/new?job_id=#{@job.id}"
else
render 'new'
end
end
Subscriberjobs Controller(这是什么不起作用!)
class SubscriberjobsController < ApplicationController
before_filter :authenticate_user!
def new
end
def update
@job = Job.find(params[:job_id])
token = params[stripeToken]
customer = Stripe::Customer.create(
card: token,
plan: 1004,
email: current_user.email
)
@job.is_active = true
@job.is_featured = false
@job.stripe_id = customer.id
@job.save
redirect_to root_path
end
end
表格
= simple_form_for @job do |f|
= f.input :company, required: true
= f.input :title, required: true
= f.input :job_filename
= f.input :location, required: true
= f.input :sort
= f.input :tag_list, required: true
= f.input :content_one
= f.input :content_two
= f.input :content_three
= f.hidden_field :job_id, value: params[:id]
= f.button :submit
如果您需要其他信息,请告诉我。每个答案都非常感谢。谢谢!
答案 0 :(得分:0)
你的问题在这里:
@job = Job.find(params[:job_id])
看起来,params [:job_id]等于nil
。也许您的参数job_id
被称为不同的东西,例如[:id]
?
其他问题是,为什么要更新Job
中的SubscriberJobsController
?如果您使用JobsController
执行此操作,可能会更好吗?
答案 1 :(得分:0)
试试params[:job][:id]
。在浏览器中使用View Source或Chrome开发工具用于检查表单的呈现方式,因为它会告诉您正在设置参数。此外,在提交表单时,请查看Rails日志 - 您将看到提交的参数。