关于简单的'Hello World'Rails-Ajax示例的想法?

时间:2010-11-03 14:35:44

标签: jquery ruby-on-rails ajax

使用rails学习/重新学习ajax。我认为rails-ajax在过去几年中发生了很大的变化,所以没有找到一个非常简单的'Hello World'类型ajax示例(没有资源,没有记录)。

这是一个尝试(下面)在简单的rails ajax示例基于我可以找到的引用。 它工作 - 但是,它似乎有点麻烦(即ajax请求操作的一对一.js文件)。有没有人想过改进(更优雅)的导轨ajax'Hello World'?

---------------------
View - 'edit.html.erb' 


 <div id="div_msg">
 <%= link_to "Wow",
  {:controller=>"rectangle_set_model" , :action=>'ajax_msg' , :id=>'1'},
  :remote => true,
  :class => 'link1',
  :update => "div_hello",
  :id => 'link1'
 %>
 </div>

 <div id="div_hello">
 </div>

--------------------- 
Controller - 'rectangle_set_model_controller.rb' 

 def ajax_msg
  @msg1 = "Buenos Dias!"
  respond_to do
   |format|
   format.html
   format.js
   format.xml
  end
 end


--------------------- 
Javascript (corresponding to ajax_msg format.js in controller)
- 'ajax_msg.js' 

$('#div_hello').html("<%= controller.msg1 %>");

--------------------- 

2 个答案:

答案 0 :(得分:0)

为什么要渲染JS视图?

只需使用UJS和标准的Ajax调用即可。 You Rails操作可以呈现JSON:

format.js { render :json => { :text => "Hello the world" } }

// application.js
// jQuery
// in $(document).ready(function()...) or $("#my_button").click(function()...)
//
$.ajax({
  url: "/home/hello",
  success: function(response) {
    $("#div_hello").html(response.text);
  }
});

答案 1 :(得分:0)

谢谢你们

塞缪尔 - 由于某种原因不能正常工作

每当我启用此行

format.js {render:json =&gt; {:text =&gt; “你好世界”}}

然后我在浏览器中遇到错误(在操作链接上)

浏览器弹出错误--------&gt;预期';'