2015-01-26 2 views
0

한 페이지에 여러 개가 있으므로 개별 양식에 대한 유효성 검사 오류를 캡처하려고합니다. 나는 각각 제공하고개별 양식의 오류 캡처

object_id

<% object = @document || Document.new %> 
<%= form_for object, :html => { id: object.object_id.to_s } do |f| %> 

를 사용하여 자신의 고유 ID를 형성하지만 난이 오류를 캡처하기 위해이 작업을 수행 할 경우 같은 오류 메시지가 내 모든 형태에 나타납니다

<% if object.errors.any? %> 
    # errors 
<% end %> 

내가 가진

<% if object.object_id.errors.any? %> 

을 시도하지만 난

를 얻을 수
undefined method `errors' for 59187740:Fixnum 

이 주위에 방법

하시기 바랍니다 감사합니다

그래서 그 이유는 오브젝트 설명, 난 그냥 양식 ID를 변경 유효성 검사 페이지를 다시로드로 실패 할 때 나타났습니다

편집

있는가 찾을 수 없다.

어떻게 양식 ID를 동일하게 유지할 수 있습니까?

답변

0

정말 당신이 오류가 수행 할 작업에 따라 달라집니다 경우

을 당신은 각각의 양식을 보여주고 싶은 :

<%= form_for some_object, do |f1| %> 
    <%= f1.error_messages %> 
    <%= # f1 magic %> 

<%= form_for other_object, do |f2| %> 
    <%= f2.error_messages %> 
    <%= # f2 magic %> 

당신은 각 개체에 액세스하려면 :

단지 object.errors 전화 : some_object.errors

것은 당신을 위해 작동하지 않는 것 :

숫자 (FixNum) 인 object 액세스의 idobject_id를 호출. 존재하지 않는 FixNum에서 메소드를 호출하거나 속성에 액세스하려고합니다.

는 당신은 내가 당신의 object 이미 데이터베이스에서오고있다하는 ID를 가지고 있다고 가정 양식

에 대한 몇 가지 영구적 인 ID를 원한다. 그럼 object.id을 사용하지 않으시겠습니까? Rails가 DB로부터 ActiveRecord 객체를 생성 할 때마다 그 객체는 새로운 object_id을 얻습니다. 따라서 새로운 object 메모리를 가지고 있기 때문에 ID가 동일하게 유지되는 것은 논리적 일뿐입니다. 여기에 대해 자세히 알아보기 :

https://stackoverflow.com/a/3430487/2295964

+0

덕분에 거기 answer..Is있는 방법을 형태가 실패 할 때 유효성 검사는 말할 수 있도록, (아마도 배열을 통해 반복) 형태의 ID에 번호를 할당 동일한 ID가 할당 될 것입니다. 내 문제는 새로운 객체를 생성 할 때입니다. – Richlewis

+0

@Richlewis는 양식이 어떻게 생성되고 구조화되는지에 대한 자세한 정보를 제공 할 수 있습니까? –

+0

그 밖의 무엇을보고 싶습니까? – Richlewis