2013-06-04 2 views
0

몇 군데에 포함 된 모델을 가진 간단한 레일즈 애플리케이션을 가지고 있습니다. Rails 2.3.8의 여러 컨트롤러에서 모델을 업데이트 할 수 있습니다. 내 모델에는 이름과 설명을 검증 할 수있는 코드가 있습니다. 공백 인 경우 Active_Scaffold가 div에 오류 메시지를 입력해야합니다. 이것은 사용자의 컨트롤러에 직접 연결된 페이지에서 작동하지만 다른 곳에 사용자를 포함 시키면 사용자의 컨트롤러 페이지에만 표시되고 현재 표시된 페이지에는 표시되지 않습니다. Acitive_Scaffold가 마술처럼 정확한 위치로 리디렉션하지 않아야하나요?레일즈 2.3.8에서 작동하지 않는 것의 존재를 확인하십시오.

코드 :

class User < ActiveRecord::Base 
    validates_presence_of :name, :description, :allow_blank => false 

    def create_from_params(params) 
     @name = params[:name] 
     @description = params[:description] 
    end 

당신이 화려 하드 아무것도 볼 수 있듯이.

편집 : 미안 내가 active_scaffold 뷰는 단지 그것을 표현하는 모델에 대한 오류를 점검 의심 메서드 서명

+0

내가 그것을 편집 – MrYoshiji

+0

죄송합니다 (액티브 :: 자료는 당신에게 등을 파괴 삭제 새 업데이트를 만드는 등의 모든 기본 방법을 제공합니다). 메소드 서명의 일부를 잊어 버렸습니다. –

+0

이 메소드'create_from_params (params)'는 여기서는 유용하지 않지만, AR :: Base의 기본'create' 메소드로 충분합니다. 어쨌든 모델의 속성을 설정하려면'self.name = params [: name]'을 대신 사용하십시오. 그러나 AR :: Base의 기본'create' 메소드를 사용하는 것이 좋습니다. 아, 그리고 또한'self.save' ;-)로 끝내야합니다. – MrYoshiji

답변

0

의 나머지 부분을 떠났다. 이 오류 검사 코드를 사용자보기가 아닌보기에 추가하십시오. 당신은 사용자 모델에서`create` 방법을 덮어 쓸 필요가 없습니다

<%= error_messages_for :user %> 
+0

그러면 active_scaffold 오류 메시지가 제대로 채워 집니까? –

+0

나는 전에 active_scaffold를 사용 해본 적이 없지만 이것을 시도하면 문제가 드러날 것이라고 생각합니다. – eabraham

관련 문제