RoRにはまだ新しい...私は今、次のことを達成する方法に大いに混乱しています。
app / views / packjobs/_form.html.erbの下にフォローしています
<td><%= f.collection_select(:pj_packer, @packers, :p_name, :p_name, { :include_blank => true} ) %></td>
<%= f.hidden_field :packer_id, :value => @packers.id %>
<td><%= f.text_field :pj_guestpacker %></td>
私は2つのモデルのパッカーとpackjobsを持っています。
class Packjob < ActiveRecord::Base
belongs_to :packer
end
class Packer < ActiveRecord::Base
has_many :packjobs
end
ドロップダウン用にコントローラーのパッカーリストを注文しましたが、それが問題の原因である可能性があると考えました。
# GET /packjobs/new.xml
def new
@packjob = Packjob.new
@datestamp = Time.now.strftime("%m/%d/%Y %I:%M:%S %P")
@packers = Packer.find(:all, :conditions => { :p_team => "t" }, :order => "p_name")
@rigs = Rig.find(:all, :conditions => { :rig_status => "t" }, :order => "rig_type_number")
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @packjob }
end
end
packjobsのスキーマは次のとおりです。
-- Describe PACKJOBS
CREATE TABLE "packjobs" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"pj_packer" VARCHAR(255) NOT NULL,
"pj_guestpacker" VARCHAR(255),
"pj_rig_type_number" VARCHAR(255),
"pj_damage" VARCHAR(255),
"pj_extranotes" VARCHAR(255),
"created_at" DATETIME,
"updated_at" DATETIME
, "packer_id" integer)
ドロップダウンに:pj_packerのPacker名を入力できます。しかし、Packer IDを:packer_idに渡したいのですが。
私は得続けます:NoMethodError in Packjobs#new undefined method 'id' for #<Array:0xa32828c>
編集:
理想的には、選択したパッカーのIDをキャプチャするための非表示フィールドが必要です。