我试图在模态中渲染表单。它正在呈现它,但form_for只显示输入,因此我无法定位提交,我需要它才能执行ajax。
广告组/视图/ edit.html.haml
%div(id="openModal" class="modalDialog")
%div
%a(href="#close" title="Close" class="close")
= render "/cars/new"
汽车/视图/ new.html.haml
= form_for :car, :url => {:controller => 'cars', :action => 'create'}, :html => {:multipart => true,:id =>'car-form'} do |f|
%div(class="control-group")
= label_tag "Year"
%br
= text_field_tag "year"
%br
%div(class="control-group")
= label_tag "make"
%br
%select{ :name => "make", :class => "chosen" }
- @makes.each do |m|
%option{:value => m.id}= "#{m.name}"
%br
%div(class="control-group")
= label_tag "Model"
%br
= text_field_tag "model"
%br
%div(class="control-group")
= label_tag "Trim"
%br
= text_field_tag "trim"
%br
%div(class="control-group")
= label_tag "Car Image(s)"
%br
= file_field_tag "files[]"
%br
= submit_tag
由于我在不同的视图中渲染它并且有效,所以有点奇怪。
汽车/ backend.html.haml
%div(class="backend-unit")
%h2 Add Cars
= render 'new'
这是我的javascript。
$(document).ready(function(){
$('#car-form').on('submit',function(event){
event.preventDefault();
alert('hello');
});
});
Althoug永远不会打招呼,因为它没有form_for,因此我甚至无法定位提交。 知道为什么??
答案 0 :(得分:0)
Rails接受相对于render
路径的app/views
路径,如果你有像app/views/cars/views/new.html.haml
那样的愚蠢结构,那么你应该使用= render "cars/views/new"
。由于您提到cars/backend.html.haml
,因此views
之后没有/car
因此无法确定您的结构是什么样的。