[英]Rails - Validation Error Messages is not Appearing
我在Rails4應用程序中遇到驗證錯誤消息的問題。 他們不會以某種方式出現。 當他們觸發時,僅顯示“請檢查以下問題”消息,僅此而已,沒有錯誤消息。
order.rb =>
Class Order < ActiveRecord::Base
....
attr_accessor :card_number, :card_verification
validate :validate_card, :on => :create
private
def validate_card
unless credit_card.valid?
credit_card.errors.full_messages.each do |message|
errors.add(:base, message)
end
end
end
end
orders_controller.rb =>
def create
@order = Order.new(order_params)
@order.ip_address = request.remote_ip
@order.user_id = current_user.id
respond_to do |format|
if @order.save
if @order.purchase
format.html { render action: "success", notice: 'Perfect!' }
else
format.html { render action: "failure" }
end
else
format.html { render action: 'new' }
end
end
end
/orders/new.html.rb =>
<%= simple_form_for(@order, html:{class: "well"}, :method => :post) do |f| %>
<%= f.error_notification %>
<%= f.input :participation_id, collection: Participation.where(user_id: current_user.id), as: :select, label_method: lambda{|x| x.examination.name}, label: 'Choose' %>
<%= f.input :first_name, label: 'Name' %>
<%= f.input :last_name, label: 'Surname' %>
.........
<%= f.button :submit %>
<% end %>
我的代碼有什么問題?
提前致謝。
試試這個>>>
Class Order < ActiveRecord::Base
....
attr_accessor :card_number, :card_verification
validate :validate_card, :on => :create
private
def validate_card
unless credit_card.valid?
errors.add(:credit_card, "your message")
end
end
end
你可以試試看 一次將產生一個錯誤
<% if @order.errors.full_messages.any? %>
<% @order.errors.full_messages.each do |error_message| %>
<%= error_message if @order.errors.full_messages.first == error_message %> <br />
<% end %>
<% end %>
請看例子
class Invoice < ActiveRecord::Base
validate :active_customer, on: :create
def active_customer
errors.add(:customer_id, "is not active") unless customer.active?
end
end
檢查此鏈接以獲取更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.