在谷歌用Google搜索并伤害了我的大脑几个小时之后,我终于决定发布这个问题了。这是代码......
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")))
当action2.rjs在其中启动时,该代码应该显示html页面,而不是我得到这个
Element.update("some_div", "<style type=\"text/css\">\n\n..............
正如我读过的其他帖子所建议的,他们说它是由于link_to_remote_redbox函数中的“:update =&gt; some_div”引起的,但显然我的代码没有。
总是感谢帮助。 非常感谢
答案 0 :(得分:0)
确保布局包含默认的javascript文件。换句话说:
答案 1 :(得分:0)
请尝试以下操作: -
def action2
render :update do|page|
page.replace_html, 'some_div', :partial => 'some_partial'
end
end
OR
<form onsubmit="new Ajax.Request('', {asynchronous:true, evalScripts:true, onComplete:function(request){RedBox.close(); return false;}, parameters:Form.serialize(this)}); return false;}" method="post" action="/some_controller/action2">
答案 2 :(得分:0)
def action2
...some code
respond_to do |format|
format.js
end
end
这将明确告诉rails返回javascript而不是html。如果您使用jQuery而不是RJS,这也很有用。
干杯!