【发布时间】:2009-12-19 04:28:56
【问题描述】:
form_remote_tag 似乎生成了正确的 html,但渲染的是 format.html 而不是 format.js。呈现 format.html 而不是 format.js 的两个最常见的答案是将文件 *.rjs 重命名为 *.js.rjs 并确保实际加载了 javascript 文件。这两项都已完成。如果有任何其他信息可以提供,请告诉我。
[编辑] create.js.rjs 已在下面添加。 [/编辑]
Rails 2.3.2
查看/项目/show.html.erb
<%= form_remote_tag :url => { :controller => :milestones, :action => :create }
#:update => 'milestone-list',
#:url => { :controller => "milestones", :action => :ajax_create},
#:position => 'bottom'
%>
<%= render :partial => 'milestones/form' %>
<input type="hidden" id="milestone_project_id" name="milestone[project_id]" value="<%=@project.id %>" />
<%= submit_tag 'Add Milestone' %>
milestones_controller.rb
def create
@milestone = Milestone.new(params[:milestone])
respond_to do |format|
if @milestone.save
flash[:notice] = 'Milestone was successfully created.'
format.js {render :layout => false }
format.html { render :show }#redirect_to(@milestone) }
format.xml { render :xml => @milestone, :status => :created, :location => @milestone }
else
format.html { render :action => "new" }
format.xml { render :xml => @milestone.errors, :status => :unprocessable_entity }
end
end
end
标题
(域名和ips已更改。服务器是杂种服务器,apache设置为代理)
* ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
* HOST: 127.0.0.1:8004
* X_FORWARDED_HOST: slate.project.mydevserver.com
* VIA: 1.1 project.mydevserver.com
* USER_AGENT: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
* ACCEPT_LANGUAGE: en-us,en;q=0.5
* REFERER: http://slate.project.mydevserver.com/projects/2
* VERSION: HTTP/1.1
* X_FORWARDED_SERVER: project.mydevserver.com
* X_FORWARDED_FOR: 1.2.3.4
* ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7
* CONNECTION: Keep-Alive
* ACCEPT_ENCODING: gzip,deflate
生成的html
<form action="/milestones" method="post" onsubmit="new Ajax.Request('/milestones', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;">
<div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="wTS9QPqFiGvP3RVlvKsA49Z6xtEGH9gmcLP//XC0whc=" /></div>
Title: <input id="milestone_title" name="milestone[title]" size="30" type="text" /><br />
Description: <input id="milestone_description" name="milestone[description]" size="30" type="text" /><br />
Days: <input id="milestone_days" name="milestone[days]" size="30" type="text" /><br />
<input type="hidden" id="milestone_project_id" name="milestone[project_id]" value="2" />
<input name="commit" type="submit" value="Add Milestone" />
</form>
create.js.rjs
page.insert_html :bottom, 'milestone_list', "Hi"
【问题讨论】:
-
您能发布相关的 RJS 文件吗?那里可能有问题。
标签: ruby-on-rails ajax