2012-07-24 90 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 

从而造成正是我想要的!