首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我呈现的部分“_form”出现,但未提交

我呈现的部分“_form”出现,但未提交
EN

Stack Overflow用户
提问于 2015-04-16 00:15:40
回答 2查看 479关注 0票数 0

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:

代码语言:javascript
复制
 <%= render partial: "inqueries/form", locals: {inquery: @Inquery} %>

但是,这只会呈现表单。当我点击submit按钮时,没有提交任何错误、flash消息或inquery。它完全不起作用,包括在我的rails终端上。

如何才能使表单在我的登录页面上正常工作?

这是我的welcome_controller.rb文件。这个控制器处理登录页面,我试图在这里呈现inquery scaffold的表单:

代码语言:javascript
复制
class WelcomeController < ApplicationController

      def index
        @inquery = Inquery.new
        render layout: false
      end
    end

这是我在inqueries_controller.rb中新的rails脚手架生成方法:

代码语言:javascript
复制
  def new
    @inquery = Inquery.new
    respond_with(@inquery)
  end

对不起,这里是Inquery _form本身:

代码语言:javascript
复制
<%= 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的新手,我需要在第二个目录中呈现一个新的操作吗?

EN

回答 2

Stack Overflow用户

发布于 2015-04-16 00:37:59

你的部分有两张表格。提交给inqueries#create的是一个没有submit按钮的空表单,另一个没有包含文本字段和submit操作的操作。

form_for标签将创建html标签,您不需要再次指定它们。

提示-切换到haml。你再也不会回头看erb :)

这应该可以工作(未测试)-

代码语言:javascript
复制
<%= 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 %>
票数 1
EN

Stack Overflow用户

发布于 2015-04-17 22:06:57

我想通了。愚蠢的错误,我的欢迎页面是一个引导程序主题,我还没有完全看过。我导入了一些不必要的javascript文件,我认为这些文件会阻塞表单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29655496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档