Кажется, form_remote_tag
генерирует правильный html, но format.html отображается вместо format.js. Два наиболее распространенных ответа на файл format.html, отображаемый вместо format.js, - переименование файла *
.rjs в *
.js.rjs и проверка загрузки файлов javascript. Оба из них были сделаны. Дайте мне знать, если есть какая-либо другая информация, которую я могу предоставить.
[править]
create.js.rjs был добавлен ниже.
[/ Править]
Рельсы 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"