0
私はjobs
とclients
という2つのモデルがあります。client_idを定義するにはどうすればよいですか?
ユーザーは簡単にクライアントを作成してから、多数のジョブを割り当てることができます。
ここに私のモデルがあります。
job.rb
class Job < ActiveRecord::Base
has_and_belongs_to_many :clients
end
client.rb
class Client < ActiveRecord::Base
has_and_belongs_to_many :jobs
end
新しいジョブを作成するための私のフォームは、次のようになります。そこにあるあなたが見ることができるように
<%= simple_form_for :job do |f| %>
<%= f.input :name %>
<%= <%= collection_select(:job, :client_ids, Client.all, :id, :name, {:include_blank => 'None'}, { :multiple => true }) %>%>
<%= f.button :submit %>
<% end %>
すべてのクライアントを含むフォームのドロップダウンボックス。私は両方のjob_id
との接合テーブルを設定している
class JobsController < ApplicationController
def index
@jobs = Job.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @job }
end
end
def new
@jobs = Job.new
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @job }
end
end
def create
@jobs = Job.new(params[:job])
respond_to do |format|
if @jobs.save
format.html { redirect_to @jobs, notice: 'Job was successfully created.' }
format.json { render json: @jobs, status: :created, location: @jobs }
else
format.html { render action: "new" }
format.json { render json: @jobs.errors, status: :unprocessable_entity }
end
end
end
def show
@jobs = Job.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @jobs }
end
end
end
:
ActiveRecord::UnknownAttributeError in JobsController#create
unknown attribute: client_id
Application Trace | Framework Trace | Full Trace
app/controllers/jobs_controller.rb:22:in `new'
app/controllers/jobs_controller.rb:22:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"0ZVYpM9vTgY+BI55Y9yJDwCJwrwSgGL9xjHq8dz5OBE=",
"job"=>{"name"=>"Sample Monthly",
"client_id"=>"1"},
"commit"=>"Save Job"}
マイジョブ・コントローラは、非常に基本的であり、このようになっています。それを保存しようとするが、しかし、私はこれはめちゃくちゃ受け取る
それらの中に整数値としてclient_id
があります。 私は、エラーメッセージのように新しいコントローラの下にコントローラを定義し、新しいアクションを作成しただけのケースだと思います。
これは私の最初のRailsアプリですが、砂はどういうものかはっきりしていません。
ご協力いただければ幸いです!
ありがとうや提案のようになります。この
と交換するようにしてください。 'アソシエーションはオブジェクトに関連付けられていないフォームでは使用できません。 ' – Keva161
あなたのフォームに':job'を '@ job'に置き換えてみてください。 – Suborx
@jobは元々そこにありました。しかし、私は:jobを使用する必要がありました:このエラーを受け取るときに、 'unformed method' model_name 'for NilClass:Class ' – Keva161