红宝石在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调用的浏览器中可见。
非常感谢您的建议,但它似乎并未将所选值存储在表中的prod_method列中。 – Kim 2011-03-07 16:40:05
hm ...尝试命名选择标记“sub [detail] [PROD_METHOD]”,而不是:prod_method – sled 2011-03-07 16:52:40