【发布时间】:2015-04-16 18:28:25
【问题描述】:
所以我有 3 个级联下拉菜单和一个船模型(brand_id、year_id、model_id)。错误未显示。我已经添加了;
validates :brand_id, presence: true
validates :year_id, presence: true
validates :model_id, presence: true
validates :user_id, presence: true
到#boat.rb。我有我的表格;
<%= form_for(@boat) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="col-md-6">
<%= f.label :Brand %>
<%= f.collection_select(:brand_id, @brands, :id, :name, {:prompt => "Select a Brand"}, {:id => 'brands_select'}) %>
</div>
<div class="col-md-6">
<%= f.label :Year %>
<%= f.collection_select(:year_id, @years, :id, :name, {:prompt => "Select a Year"}, {:id => 'years_select'}) %>
</div>
<div class="col-md-6">
<%= f.label :Model %>
<%= f.collection_select(:model_id, @models, :id, :name, {:prompt => "Select a Model"}, {:id => 'models_select'}) %>
</div>
<div class="col-md-6 col-md-offset-3">
<%= f.submit "Next", class: "btn btn-primary"%>
</div>
<% end %>
我有shared/errors
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
该共享错误消息非常适合用户模型。还有我的#create 操作
def create
@boat = current_user.boats.build(boat_params) if logged_in?
if @boat.save
flash[:success] = "Boat created!"
redirect_to root_url
else
redirect_to new_boat_path(current_user) #returns here
end
end
我调用 new.html 并打开表单。当我按下而不选择任何内容时,它会重定向到new_boat_path(current_user) 而不会显示错误。我不知道为什么。
编辑1: 这是日志:
Started GET "/boats/new.2" for 88.240.3.128 at 2015-04-16 21:58:01 +0000
Processing by BoatsController#new as
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]]
Rendered shared/_error_messages.html.erb (0.0ms)
所以它呈现,但我在页面上看不到任何错误
编辑 2:#new 方法(品牌、年份和型号是级联下拉列表,其中船型号有其 id)
def new
@boat = Boat.new
@brands = Brand.all
@years = Year.all
@models = Model.all
end
【问题讨论】:
标签: ruby-on-rails render message