gpt4 book ai didi

ruby-on-rails - 如何升级:update= >'div_id' option of remote_form_for from Rails 2 to Rails 3?

转载 作者:行者123 更新时间:2023-12-01 08:38:15 27 4
gpt4 key购买 nike

我不知道如何将此代码从 Rails 2 升级到 Rails 3:

<% remote_form_for(item, :update => 'div_id') do |f| %>
...

我试过了:

<%= form_for :item, :remote => true, :url => { :controller => "items", :action => "create" }, :update => 'div_id' do |f| %>
...

创建新项目,但更新内容失败 <div id="div_id"></div>标签。 Rails 3 似乎不再支持远程 :update 的“form_for”选项。 .有什么建议吗?

最佳答案

您可以使用 RJS,但这也已被弃用(并且有充分的理由)。在 Rails 3+ 中处理此问题的简化的最佳实践方法如下(假设为 jQuery):

# your_view.html.erb
<div id="receiver-id"></div>

<%= form_for :some_model, :remote => true, :id => 'form-id' do |f| %>
...
<% end %>


# application.js (or any other .js loaded on the page)
$(function(){
$('#form-id').bind('ajax:success', function(xhr, data, status){
$('#receiver-id').html(data);
});
});

ajax:success 钩子(Hook)被 jquery-ujs(又名 jquery-rails,又名 rails-ujs)远程链接/表单处理程序调用。 See for yourself.还有许多其他回调/ Hook 可供您使用。如果你想让它更加灵活,你可以使用 live 而不是 bind,并绑定(bind)到一个指示输出去向的类(例如“sidebar”)和那么所有带有 sidebar 类的远程链接/表单都会将其 HTML 响应转到 div#sidebar

关于ruby-on-rails - 如何升级:update= >'div_id' option of remote_form_for from Rails 2 to Rails 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com