在另一个视图中呈现表单,表单没有显示

rendering form in another view , form not showing up

本文关键字:表单 显示 另一个 视图      更新时间:2023-09-26

我试图在模态中呈现表单。它是渲染它,但form_for不显示只有输入,因此我不能目标提交,我需要它,以便做ajax。

Adgroup/视图/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');
});

});

虽然从来没有得到hello,因为它没有form_for,因此我甚至不能针对提交。知道为什么吗?

Rails接受render路径相对于app/views路径,如果你有像app/views/cars/views/new.html.haml这样的文件夹结构,那么你应该使用= render "cars/views/new"。这有点让人困惑因为你提到你有cars/backend.html.haml,这里/car之后没有views所以不确定你的结构是什么