2009-11-23 5 views
0

그래서 나는이 코드를 템플릿보기 경로 H에 템플릿 자동차/find.erb 누락누락 된 템플릿

이 없습니다 : \ Documents 및 설정/소유자/내 문서/NetBeansProjects/레일 Application5/응용 프로그램 /보기 찾기 데프 (컨트롤러에 있음)에서

def find 
    @car = Car.new(params[:car_]) 
end 
+0

:

def find @car = Car.find_by_name(params[:name]) end 

나는 또한 양식이 더 같이 될 것이라고 기대 : 나는 이런 식으로 뭔가를 기대하는 행동 => 'find''하지만 방법은'검색이라고합니다 ' – JosephL

+0

아 잘못된 방법을 복사했습니다 : 찾기 방법은 입니다. @ car = Car.new (params [: car_]) end – Lilz

답변

4

당신의 발견 방법의 마지막 줄은 무엇입니까? 일반적으로 컨트롤러 메소드에서 렌더링 할 템플릿을 지정하지 않으면 Rails는 메소드와 이름이 같은 템플릿을 찾으려고 시도합니다. 그것이 왜 자동차를 발견 할 수 없다는 말입니다/find.erb. 찾기 작업에서 코드를 보지 않고도 더 나은 대답을내는 것은 어렵습니다.

+0

가 추가되었습니다! – Lilz

+0

Chirs가 맞습니다. find 메쏘드에 대한 뷰가 없다면 메쏘드 끝에서'render : action => : show'와 같은 리다이렉트가 필요합니다 – JosephL

1

find 메소드는 매개 변수로 초기화하지 않고 일부 검색을 수행해야합니다. 검색을 원하면 thinking sphinx 또는 searchlogic과 같은 것을 체크 아웃하는 것이 좋습니다.

1

귀하의 코드가 찾기 작업을 실행하고 있다고 생각합니다. 그러나 car 객체를 찾은 후에는 검색 결과를 보여주는 템플릿에 해당 객체를 써야합니다. 규칙에 따라 레일은 해당 컨트롤러의보기 폴더에서 find.html.erb라는 파일을 찾습니다. 따라서 표시되는 오류 메시지는 Rails가 작업의 코드 줄을 실행했으며 이제 브라우저로 다시 보낼 HTML을 생성하려고 시도하고 있음을 나타냅니다.

보기 폴더에 간단한 파일을 만드는 경우 콘텐츠가있는 컨트롤러 :

<%= @car.name %> 

결과가 표시됩니다.

그러나 find 메소드가 새 Car 객체를 만드는 이유를 알지 못하기 때문에 코드가 다소 혼란 스럽습니다. 당신은`이

<% form_tag(:action => 'find') do%> 
    Product name: 
    <%= text_field_tag("name", :size => "30") %> 
    <%= submit_tag "find" %> 
<%end%>