对 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>
我有两个模型包装工和 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)
我可以用 Packer 名称填充下拉列表:pj_packer; 但我想将 Packer ID 传递给 :packer_id。
我不断得到:NoMethodError in Packjobs#new undefined method 'id' for #<Array:0xa32828c>
编辑:
理想情况下,我想要一个隐藏字段来捕获所选打包机的 ID。