表单不创建新条目 [英] form not creating new entries

查看:31
本文介绍了表单不创建新条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个表单来添加一个传输器:我有 app/views/transporters/new.html.erb 调用模板,app/views/_form.html.erb 看起来像:

<%= form_for(@transporter) do |f|%><% if @transporter.errors.any?%><div id="error_explanation"><h2><%=pluralize(@transporter.errors.count, "error") %>禁止保存此传送器:</h2><ul><% @transporter.errors.full_messages.each do |msg|%><li><%=msg%></li><%结束%>

<%结束%><div class="field"><%= f.label :name %><br><%= f.text_field :name %>

<div class="field"><%= f.label :phone %><br><%= f.text_field :phone %>

<div class="field"><%= f.label :id_number %><br><%= f.text_field :id_number %>

<div class="actions"><%= f.submit '添加传输器',类:'btn btn-success' %>

<%结束%><%= link_to '返回所有传输器',transporters_path,类:btn"%>

这是我的传输控制器中的创建操作:

 def 创建@transporter = Transporter.new(transporter_params)结尾私人的def transporter_paramsparams.require(:transporter).permit(:name,:phone,:id_number)结尾

当我点击添加传输器时,表单不会去任何地方.我有什么问题?

更新:这是我的路由文件:

Cowsnhills::Application.routes.draw 做资源 : 运输机资源:交货根'欢迎#index'结尾

当我点击提交表单重新加载但条目不会显示在我的运输者索引上,这是代码:传输器控制器方法:

 定义索引@transporters = Transporter.all结尾

和转运指数:

列出传输器

<表格><头><tr><th>姓名</th><th>电话</th><th>Id</th><th></th><th></th><th></th><th></th></tr></thead><% @transporters.each 做 |transporter|%><tr><td><%=transporter.name%<</td><td><%= transporter.phone%></td><td><%=transporter.id%</td><td><%= f.link_to_add "添加交付", :deliveries %></td><td><%= link_to 'Show transporter details', transporter %></td><td><%= link_to 'Edit transporter details', edit_transporter_path(transporter) %></td><td><%= link_to '删除传输器',传输器,方法::删除,数据:{确认:'你确定吗?}%></td></tr><%结束%></tbody><br><%= link_to 'New Transporter', new_transporter_path, class: "btn" %>

还有一个运输商有_许多交付和一个veliverybelongs_to运输商协会正在进行

解决方案

使用

 @transporter = Transporter.new(params[:transporter])

@transporter = Transporter.new(params["transporter"])

检查我的最后一条评论以保存它.

I am trying to create a form to add a transporter: I have app/views/transporters/new.html.erb that calls a template,app/views/_form.html.erb that looks like:

<%= form_for(@transporter) do |f| %>
  <% if @transporter.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@transporter.errors.count, "error") %> prohibited this transporter from being saved:</h2>

      <ul>
      <% @transporter.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :phone %><br>
    <%= f.text_field :phone %>
  </div>
  <div class="field">
    <%= f.label :id_number %><br>
    <%= f.text_field :id_number %>
  </div>
  <div class="actions">
    <%= f.submit 'Add transporter', class: 'btn btn-success' %>
  </div>
<% end %>
<%= link_to 'Back to all transporters', transporters_path, class: "btn" %>
</div>
</div>

This is the create action in my transporters controller:

  def create
    @transporter = Transporter.new(transporter_params)
  end

private 
def transporter_params
      params.require(:transporter).permit(:name, :phone, :id_number)
    end

When I click Add transporter the form doesn't go anywhere. What do I have wrong?

Update: this is my routes file:

Cowsnhills::Application.routes.draw do
  resources :transporters

  resources :deliveries

  root 'welcome#index'
end

When I click submit the form reloads but the entries will not show on my transporters index, here is that code: transporters controller method:

  def index
    @transporters = Transporter.all
  end

and transporters index:

<h1>Listing transporters</h1>

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Phone</th>
      <th>Id</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>

  <tbody>
    <% @transporters.each do |transporter| %>
      <tr>
        <td><%= transporter.name %></td>
        <td><%= transporter.phone %></td>
        <td><%= transporter.id %></td>
        <td><%= f.link_to_add "Add a delivery", :deliveries %></td>
        <td><%= link_to 'Show transporter details', transporter %></td>
        <td><%= link_to 'Edit transporter details', edit_transporter_path(transporter) %></td>
        <td><%= link_to 'Delete transporter', transporter, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%= link_to 'New Transporter', new_transporter_path, class: "btn" %>

Also there's a transporter has_many deliveries and a velivery belongs_to transporter association going on

解决方案

use

 @transporter = Transporter.new(params[:transporter])

or

@transporter = Transporter.new(params["transporter"])

check my last comment to save it.

这篇关于表单不创建新条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆