如何解决尝试渲染:partials而不是整个视图
|| 我试图获得一些简单的切换以渲染小的局部图像而不是更改整个视图-无论如何,我不清楚这是否被视为AJAX。 在这里,我们让用户回答一个问题。在执行此操作时,可以将问题本身标记为不适当。 查看:answers#new.html.erb
部分视角:_flag.html.erb
切换控制器:opinions/flag
,用于更新opinion
并在当前answers#new
内部渲染flag
局部。
# flag.html.erb
<% if @opinion.try(:flag) == true %>
<b>Flagged.</b>
<%= link_to \"undo\",opinions_flag_url(:id => @question.id,:flag => false),:remote => true %>
<% else %>
<%= link_to \"flag this\",:flag => true),:remote => true %>
<% end %>
# last part of opinions controller / flag
if @opinion.save
format.html { render :partial => \"answers/flag\" }
format.xml { head :ok }
else
format.html { render :action => \"new\",:id=>params[:id] }
format.xml { render :xml => @opinion.errors,:status => :unprocessable_entity }
end
局部渲染,但不在当前视图内(显示在空白页面上)。通常,如何在没有Rails的情况下假设需要单独显示局部视图的情况下如何将片段渲染到当前视图?
结论:如果要在视图中渲染文本,如何指定新文本的位置?
解决方法
您应该使用rjs。如果不确定是否正在使用它,则可能不是:)
简而言之,您应该使用form_remote_for而不是form_for,并且应该在控制器中使用它。
respond_to do |format|
...
format.js { Do stuff here }
end
这是一个截屏视频:http://railscasts.com/episodes/43-ajax-with-rjs
将一些html放在特定位置的特定命令是:
page.replace_html \"SOME_HTML_ID\",\"<p>SOME_HTML</p>\"
但是,一旦您看了截屏视频,那应该很明显:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。