Ruby 2.1.5 on Rails 4.2.0:
我有两个目录。其中一个目录是rails-generate scaffold,名为'inqueries‘。另一个目录名为'welcome',它只包含一个名为index.html.erb的登录页面。只要我使用的是来自实际' inquery‘scaffold/目录的视图,inquery表单就可以正常工作并提交。
我可以使用以下命令在我的index.html.erb登录页面上呈现inquery _form:
<%= render partial: "inqueries/form", locals: {inquery: @Inquery} %>但是,这只会呈现表单。当我点击submit按钮时,没有提交任何错误、flash消息或inquery。它完全不起作用,包括在我的rails终端上。
如何才能使表单在我的登录页面上正常工作?
这是我的welcome_controller.rb文件。这个控制器处理登录页面,我试图在这里呈现inquery scaffold的表单:
class WelcomeController < ApplicationController
def index
@inquery = Inquery.new
render layout: false
end
end这是我在inqueries_controller.rb中新的rails脚手架生成方法:
def new
@inquery = Inquery.new
respond_with(@inquery)
end对不起,这里是Inquery _form本身:
<%= form_for(@inquery) do |f| %>
<div class="form-group col-lg-4">
<%= f.label t('.name') %><br>
<%= f.text_field :name, class: "form-control" %>
</div>
<div class="form-group col-lg-4">
<%= f.label t('.email') %><br>
<%= f.text_field :email, class: "form-control" %>
</div>
<div class="form-group col-lg-4">
<%= f.label t('.phone') %><br>
<%= f.text_field :phone, class: "form-control" %>
</div>
<div class="clearfix"></div>
<div class="form-group col-lg-12">
<%= f.label t('.message') %><br>
<%= f.text_area :message, rows: 8, class: "form-control"%>
</div>
<%= f.submit t('.submit'), class: "btn btn-primary" %>
<% end %>编辑2:我看到有一些关于逻辑的建议。我已经简化了partial,看看我是否可以让它工作,但它仍然不能在其目录之外正确提交。我是rails的新手,我需要在第二个目录中呈现一个新的操作吗?
发布于 2015-04-16 00:37:59
你的部分有两张表格。提交给inqueries#create的是一个没有submit按钮的空表单,另一个没有包含文本字段和submit操作的操作。
form_for标签将创建html标签,您不需要再次指定它们。
提示-切换到haml。你再也不会回头看erb :)
这应该可以工作(未测试)-
<%= form_for(@inquery) do |f| %>
<div id="error_explanation">
<% if @inquery.errors.any? %>
<h2>
<%= pluralize(@inquery.errors.count, "error") %> prohibited this inquery from being saved:
</h2>
<ul>
<% @inquery.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
<% end %>
</div>
<br />
<div class="col-lg-12">
<div class="form-group col-lg-4">
<%= f.label t('.name') %><br>
<%= f.text_field :name, class: "form-control" %>
</div>
<div class="form-group col-lg-4">
<%= f.label t('.email') %><br>
<%= f.text_field :email, class: "form-control" %>
</div>
<div class="form-group col-lg-4">
<%= f.label t('.phone') %><br>
<%= f.text_field :phone, class: "form-control" %>
</div>
<div class="clearfix"></div>
<div class="form-group col-lg-12">
<%= f.label t('.message') %><br>
<%= f.text_area :message, rows: 8, class: "form-control"%>
</div>
<div class="form-group col-lg-12">
<input type="hidden" name="save" value="contact">
<%= f.submit t('.submit'), class: "btn btn-primary" %>
</div>
</div>
<% end %>发布于 2015-04-17 22:06:57
我想通了。愚蠢的错误,我的欢迎页面是一个引导程序主题,我还没有完全看过。我导入了一些不必要的javascript文件,我认为这些文件会阻塞表单。
https://stackoverflow.com/questions/29655496
复制相似问题