Rails 3中是否有一种方法可以调用操作(与数据库一起使用)而无需刷新或运行操作,然后重定向到当前页面?
我试图搞乱:remote => true的link_to,但它并没有为我工作.或许我误解了它的目的......或者我错误地使用它.
从Rails3中的视图调用操作时,通常有2种情况:
link_to及其变化.link_to可选参数:remote => true(默认为false)所述第一一个结果在正常请求/响应循环:
render或redirect),只需渲染与该操作相关的视图.因此,如果调用该操作do_db_stuff,Rails3会尝试do_db_stuff.html.erg在相关的视图目录中呈现(或do_db_stuff.html.haml`).render或redirect在操作结束时更改它:
render:使用控制器的当前状态呈现您命名的模板.redirect:重定向到(此控制器或另一个控制器)的新操作,然后使用相关模板进行渲染.这例如在create操作中调用一些save方法时会失败,然后通过调用返回到同一页面render :action => "new" # doen't execute the method
在第二一个只是调用的动作,并将结果返回到该页面.页面的责任是如何处理这个问题.在一个稍微不同的场景中,我在我的应用程序中有一些类似的东西:
search_task控制器上调用(通过使用带有AJAX的JavaScript)的单击处理程序.render :partial ...回叫结果来响应该呼叫.处理程序中的JavaScript函数已注册成功函数,如下所示:
element.bind('click', function() {
$('#left').children().removeClass('selected')
element.addClass('selected');
$.ajax({url: '/tasks/search_task/' + task_id,
async: false,
dataType: 'html',
success: function(data) {
target.html(data);
}});
}
Run Code Online (Sandbox Code Playgroud)
(在这里附加了整个点击功能)
target将被替换为发送的HTML代码.我不知道是否有类似的东西link_to,也许有一个选择.
所以是的,:remote => true如果您只想忽略结果,应该适合您.
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |