Ruby on rails Rails RJS模板显示代码而不是html页面

Ruby on rails Rails RJS模板显示代码而不是html页面,ruby-on-rails,rjs,Ruby On Rails,Rjs,在谷歌上搜索了几个小时,弄伤了我的大脑之后,我终于决定发布这个问题。这是密码 view1.html.erb -------------- <%=link_to_remote_redbox "Link", :url => {:action => :action1, :id => @some.id} some_controller.rb ------------------ def action1 render :layout => false end de

在谷歌上搜索了几个小时,弄伤了我的大脑之后,我终于决定发布这个问题。这是密码

view1.html.erb
-------------- 
<%=link_to_remote_redbox "Link", :url => {:action => :action1, :id => @some.id} 

some_controller.rb
------------------
def action1
  render :layout => false
end

def action2
  do some processing
end


action1.html.erb
--------------------
<form onsubmit="new Ajax.Request('/some_controller/action2', {asynchronous:true, evalScripts:true, onComplete:function(request){RedBox.close(); return false;}, parameters:Form.serialize(this)}); return false;}" method="post" action="/some_controller/action2">
<input type=text name='username'>
<input type='submit' value='submit'> 
</form>  

action2.rjs
-----------
page.replace_html("some_div", (render(:partial => "some_partial")))
view1.html.erb
-------------- 
{:action=>:action1,:id=>@some.id}
一些_controller.rb
------------------
def行动1
render:layout=>false
终止
def行动2
做一些处理
终止
action1.html.erb
--------------------
行动2.rjs
-----------
page.replace_html(“some_div”,(render(:partial=>“some_partial”))
当action2.rjs启动时,代码已经就位,应该显示html页面,而不是我得到的

Element.update("some_div", "<style type=\"text/css\">\n\n..............
Element.update(“some\u div”,“\n\n。。。。。。。。。。。。。。
正如我读到的其他帖子所建议的,他们说这是由于link\u to\u remote\u redbox函数中的“:update=>some\u div”造成的,但很明显我的代码没有这个功能

帮助总是值得感激的。
非常感谢

请确保布局包含默认的javascript文件。换句话说:

请尝试以下操作:-

def action2
  render :update do|page|
    page.replace_html, 'some_div', :partial => 'some_partial'
  end
end


如果您想从浏览器中调用并返回ajax调用,Salil的方法会起作用。但是如果您想调用更复杂的javascript(可能会使控制器混乱),您可以这样做:

def action2
  ...some code
  respond_to do |format|
    format.js
  end
end
这将明确告诉rails返回javascript而不是html。如果使用jQuery而不是RJS,这也很有用


干杯!

您好。是的,布局确实加载了所有默认设置Javascripts@graza,如果你只是建议他尝试一些东西,那么这应该是一个评论。如果你在他的代码粘贴中没有看到bug,那么试着先询问更多细节,而不是在黑暗中拍摄。
def action2
  ...some code
  respond_to do |format|
    format.js
  end
end