使用它时,我得到Ruby on Rails 的默认设计。如何在我当前的设计中将其打印为常规文本,如<%= error.text %>
?
型号:
class Users < ActiveRecord::Base
validates_presence_of :username, :message => "Du skal udfylde brugernavn"
attr_accessible :email, :password, :username
end
控制器:
class HomeController < ApplicationController
def index
if params[:username]
l = Users.new(:username => params[:username], :password => params[:password], :email => params[:email]).save!
if Users.save?
z = Users.where(:username => params[:username]).limit(1).last
@debugging="Yay"
else
@debugging = user.errors.full_messages.join("<br/>")
end
end
end
end
答案 0 :(得分:1)
your_object.errors
返回一个关联数组:{:username => "Du skal udfylde brugernavn"}
所以你可以这样做:
<%= user.errors[:username] %>
在此处查看有关如何使用此视图的更多信息(官方Ruby on Rails文档): http://guides.rubyonrails.org/active_record_validations_callbacks.html#working-with-validation-errors
答案 1 :(得分:1)
要验证对象的特定属性是否有效,可以使用errors [:attribute]。它返回:属性的所有错误的数组。如果指定的属性没有错误,则返回一个空数组。
所以,只显示errors
哈希..
答案 2 :(得分:0)
在模型中:
validates_presence_of :username, :message => "Du skal udfylde brugernavn"
在控制器中:
if user.save
flash[:success] = 'User saved successfully'
else
flash[:error] = user.errors.full_messages.join('<br />')
end
修改强>
不是if Users.save?
它应该是l.save
。 (我建议你使用User
作为模型)
if params[:username]
l = Users.new(:username => params[:username], :password => params[:password], :email => params[:email])
if l.save
z = Users.where(:username => params[:username]).limit(1).last
@debugging="Yay"
else
@debugging = l.errors.full_messages.join("<br/>")
end
end