2013-03-25 66 views
0

當使用這個時,我得到了Ruby on Rails enter image description here的默認設計。我如何才能在當前的設計中像普通文字那樣打印它,如<%= error.text %>顯示錯誤而不是ruby默認值?

型號:

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 
+1

您呼叫** **驗證兩次,修改爲'validates_presence_of:用戶名,:消息=> 「杜斯考爾udfylde brugernavn」' – 2013-03-25 17:12:34

+0

@SagarBommidi 'presence => true'被忽略。 – codeit 2013-03-25 17:18:47

回答

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 
+0

嗯,那並沒有成功。再次檢查我的問題以獲取我的新代碼。 – jesper 2013-03-25 17:56:16

+0

是的,我也試過。只顯示紅寶石默認頁面。 – jesper 2013-03-25 18:02:45

+0

從末尾刪除'.save!' – codeit 2013-03-25 18:06:19

1

your_object.errors返回一個關聯數組:{:username => "Du skal udfylde brugernavn"}

所以,你可以這樣做:

<%= user.errors[:username] %> 

查看如何使用此更多信息你的觀點(官方Ruby on Rails doc): http://guides.rubyonrails.org/active_record_validations_callbacks.html#working-with-validation-errors

+0

它仍然會打破頁面。 – codeit 2013-03-25 17:12:57

+0

使用Codeit保存在控制器中的方式。如果要檢查保存是否正確,則應在if語句中使用'.save?'。然後顯示正確的頁面。 – almathie 2013-03-25 17:16:20

1

f rom Rails Guide to Validations

要驗證對象的特定屬性是否有效,可以使用errors [:attribute]。它返回所有錯誤的數組:屬性。如果指定屬性上沒有錯誤,則返回一個空數組。

所以,只顯示errors哈希..

相關問題