2012-07-24 64 views
0

我試圖在下拉選項被選中時自動填充字段,或者在調用create方法時查找並設置屬性。特別是位於不同類(部分)中的中間(MachineID)。 Partconfig belongs_to Part。部分有很多Partconfig。Rails在表單提交上設置值

PartConfig

<div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.select :Part_id, Part.all.collect{ |c| [c.name, c.id] } %> 
    </div> 
    <div class="field"> 
    <%= f.label :mid %><br /> 
    <%= f.number_field :mid %> 
    </div> 

我認爲我可以在創建控制器方法做到這一點:

@part_config = PartConfig.new(params[:part_config]) 
@part_config.mid = Part.find_by_name(params[:name]).select("mid") 

不工作。

+0

看起來你正在使用form_for。 **的形式是什麼?這將改變通過的參數。例如,如果您有form_for(@object),則參數名稱將顯示爲{:object => {:name =>'這是一個名稱'}}。這可能是爲什麼params [:name]沒有提到任何東西。 – 2012-07-25 14:36:46

回答

0

我刪除行

@part_config.mid = Part.find_by_name(params[:name]).select("mid") 

我試圖讓用戶從下拉列表中,這是沒有必要選擇中期。採摘名字產量PART_ID女巫的關聯允許我這樣稱呼

@part_config = PartConfig.includes(:part).find(params[:id]) 

這將返回PART_CONFIG和相關PART讓我做這件事的看法:

@part_config.part.mid 

從而造成正是我想要的!