0

これを使用すると、RubyonRailsのデフォルトのデザインを取得していますここに画像の説明を入力してください。現在のデザインで通常のテキストとして印刷するにはどうすればよい<%= 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
4

3 に答える 3

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

于 2013-03-25T17:11:09.177 に答える
1

Railsガイドから検証まで

オブジェクトの特定の属性が有効かどうかを確認するには、errors [:attribute]を使用できます。:attributeのすべてのエラーの配列を返します。指定された属性にエラーがない場合は、空の配列が返されます。

したがって、errorsハッシュを表示するだけです。

于 2013-03-25T17:18:08.843 に答える
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.saveUser(モデルとして使用することをお勧めします)

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
于 2013-03-25T17:11:01.927 に答える