<% @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屋!
查看全文