我有一个名为的对象Job
,它属于另一个client
在多关系中调用的对象。
这是我的工作模式
class Job < ActiveRecord::Base
belongs_to :client
end
这是我的客户模型
class Client < ActiveRecord::Base
has_many :jobs
end
对于新工作,我只想在创建过程中将其分配给客户。
但是,当我尝试创建新工作时。在我看来,我所看到的只是工作的 id 而不是名称,并且创建的模型的内部也是空的。
当我尝试编辑作业并再次保存时,我收到以下错误。
Client(#2157214400) expected, got String(#2151988620)
Application Trace | Framework Trace | Full Trace
app/controllers/jobs_controller.rb:61:in `block in update'
app/controllers/jobs_controller.rb:60:in `update'
我想这可能是因为我的控制器在某种程度上是错误的,但这是我的第一个应用程序,所以我不太确定去哪里看。
这是我的控制器。
类 JobsController < ApplicationController
def index
@job = Job.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @job }
end
end
def show
@job = Job.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @job }
end
end
def new
@job = Job.new(params[:id])
respond_to do |format|
format.html # new.html.erb
format.json { render json: @job }
end
end
def edit
@job = Job.find(params[:id])
end
def create
@job = Job.new(params[:jobs])
respond_to do |format|
if @job.save
format.html { redirect_to @job, notice: 'job was successfully created.' }
format.json { render json: @job, status: :created, location: @job }
else
format.html { render action: "new" }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
def update
@job = Job.find(params[:id])
respond_to do |format|
if @job.update_attributes(params[:job])
format.html { redirect_to @job, notice: 'job was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
def destroy
@job = Job.find(params[:id])
@job.destroy
respond_to do |format|
format.html { redirect_to :jobs }
format.json { head :no_content }
end
end
end
任何指向正确方向的指针或点头将不胜感激。