红宝石在rails上:观察字段以显示表格的其余部分

问题描述:

如果有人能帮助我解决这个问题,我将不胜感激。红宝石在rails上:观察字段以显示表格的其余部分

在我的RoR应用程序中,我有一个基于在一个字段中输入的值的表单,其余的表单字段相应地显示。请在下面找到

表单代码我的代码:

<p> Location: <%= f.text_field :LOC %></p> 


<% f.fields_for :detail do |builder| %> 
<p> Type: <%= builder.select(:DET_TYPE, [['Type A', 'Type A'], 
             ['Type B', 'Type B'], 
             ],{ :prompt => "Please select"} 
             ) %> 
</p> 

<%= observe_field("sub_detail_DET_TYPE", :frequency => 1, 
:url => { :controller => 'references', :action => :display_prod_method }, 
:with => "'id='+value") %> 

<div id="div1"></div> 

<% end %> 

在我引用的控制器:

def display_prod_method 
    @type = (params[:id]) 
end 

display_prod_method.rjs:

page.replace_html "div1", :partial => "prodMethod" 

_prodMethod.html.erb部分:

<% if @type == "Type A" %> 
<p>Production Method: <%= builder.select(:PROD_METHOD, [['Method A', 'Method A'], 
                ['Method B', 'Method B'], 
                ],{ :prompt => "Please select"} 
               ) %> 
</p> 
<% end %> 

问题是,如果只有部分文本,当我选择'Type A'时,它会呈现在我的主窗体中。然而,当我在部分放在下面的代码,它根本不显示 -

<%= builder.select(:PROD_METHOD, [['Method A', 'Method A'], 
                 ['Method B', 'Method B'], 
                 ],{ :prompt => "Please select"} 
                ) %> 

请有人可以提供一些线索这对我来说。

非常感谢您的帮助:)

那是因为你还没有接触到你的局部形式建设者。因为它周围没有form_for

所以你应该去静态标记功能。

在局部将这个:

<%= select_tag :prod_method, [['Method A', 'Method A'],['Method B', 'Method B']], { :prompt => "Please select"} %> 

支出关注的命名,也许你有,因为它封装在fields_for调整此。

编辑:

其实你应该尝试产生错误,请检查您的轨道服务器控制台,因为错误不会在你的,因为AJAX调用的浏览器中可见。

+0

非常感谢您的建议,但它似乎并未将所选值存储在表中的prod_method列中。 – Kim 2011-03-07 16:40:05

+0

hm ...尝试命名选择标记“sub [detail] [PROD_METHOD]”,而不是:prod_method – sled 2011-03-07 16:52:40