在我的new.html.erb页面中,我使用以下行来呈现部分内容,它可以正常工作。
<%= render :partial => "submissions/player_form", :locals => { :submission => @submission } %>
现在我想通过RJS
渲染完全相同的部分<p>Player Type: <%= f.select(:PLAYER_TYPE, $playersList, {:prompt => 'Select the Player Type'} %></p>
<%= observe_field("submission_PLAYER_TYPE", :frequency => 1,
:url => { :controller => 'submissions',
:action => :display_player_form },
:with => "'player='+value") %>
display_player_form.rjs:
page.replace_html 'observed_assay_form', :partial => 'submissions/player_form', :locals => {:submission => @submission }
什么都没显示!!
我错过了什么吗?
感谢您帮我解决这个问题:)
答案 0 :(得分:1)
我终于明白了。所以这是我的发现:
在partial中,包含form_for标记,就像在原始表单中一样 -
&lt;%form_for @object do | f | %GT;
在观察字段时使用的操作中,在我的情况下,'display_player_form',创建一个对象的新实例(见下文)
@object = Object.new
在您的rjs文件中,输入以下内容:
page ['div of div']。replace_html:partial =&gt; 'your_partial_name'
你去......
希望这有帮助
答案 1 :(得分:0)
我会将display_player_form.rjs重命名为display_player_form.js.erb,其内容如下所示:
$("#observed_essay_form").html('<%=
escape_javascript(
render :partial => 'submissions/player_form', :locals => {:submission => @submission }
)
-%>');
$("img[src$='spinner.gif']:visible").hide(); // optional - hide any visible spinner.gif images
顺便说一句,我使用的是jQuery,而不是Prototype。