2010-02-03 5 views
4

단수형과 복수형이 동일하며 새 메서드를 사용하려고 할 때 undefined_method 오류가 발생합니다."시리즈"라는 Rails 모델을 구현하려면 어떻게해야합니까?

나는 왜 가장 쉬운 해결책은 다른 이름을 사용하는 것임을 알고 있습니다.

나는 또한 사용자 정의 굴곡을 만들 수 있다는 것을 알고 있지만 무엇을해야합니까?

문제는 실제로/series,/series/1 등의 URL이 필요하다는 것입니다. 사실 모델링 중이기 때문에 ... 일련의 이벤트를 기다리고 있기 때문입니다.

"집합"또는 "시퀀스"또는 다른 동의어는 의도 된 의미를 전달하지 않습니다.

일련의 이벤트는 일련 또는 순서가 아닌 일련의 이벤트입니다.

모델의 별명을 지정하는 방법이 있습니까?

명명 된 경로를 사용할 수 있습니까?

도움을 주시면 감사하겠습니다.

답변

0

그래서 :

확실히
class Series < ActiveRecord::Base 
    ... 
end 

작동하지 않는 이유는 무엇입니까? source을보고 계열The Pluralizer에 따라 작성된 단일화 규칙 중 하나이므로 모델 클래스의 이름을 위와 같이 지정할 수 있습니다.

+0

확실히 작동하지 않습니다! –

0

굴절과 함께이 작업을 수행 할 수 있어야합니다. 에서 config/initializers/inflections.rb :

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.uncountable 'series' 
end 

활성화하려면 응용 프로그램을 다시 시작하십시오. 당신이

map.series_index '/series',:controller=>'series',:action=>:index 
map.resource :series 

그것은 의지로 변경하면 모델 컨트롤러 등을 구축하는 script/generate scaffold series을 사용하는 가정

+0

"시리즈"는 이미 Inflector에 내장 된 규칙 중 하나입니다. –

+0

명중에 http : // localhost를 : 3000/시리즈 I 얻을 : 액티브 :: RecordNotFound SeriesController 번호에 이 –

+0

내 경로 파일의 형식이 ... 그것을 고정 좋아, 내가었던 ID없이 시리즈를 찾을 수 없습니다 보여 과 활용에 사용자가 지정한 내가지고있어 사용하여 다시 시도 : SERIES_URL 실패 생성 : ActionController :: RoutingError 시리즈 #에서 앱/뷰/시리즈/new.html.erb 제기 라인 # 3 위치를 표시 새로운 {: action => "show", : controller => "series"} - 모호한 경로가 있거나이 경로에 대한 추가 매개 변수를 제공해야 할 수도 있습니다. content_url에는 다음 필수 매개 변수가 있습니다. [ "series", : id] - 모두 만족합니까? –

1

, 당신은

map.resources :series 

같은 /config/routes.rb에서 선을 가져야한다 작업. 또는 Eric Hill의 굴곡 이니셜 라이저를 추가 할 수 있습니다.

+0

내가지고있어이 작업을 수행 할 때 : 이 시리즈 # 지수 NoMethodError 라인 # 9가 제기 응용 프로그램/뷰/시리즈/index.html.erb보기 : 당신이 전무 목적을 가지고하는 것은 당신이 기대하지 않았다 그것! Array의 인스턴스를 예상했을 수 있습니다. nil.each를 평가하는 중 오류가 발생했습니다. –

+0

거기에 어떤 코드가 있습니까? 원시 스캐 폴드에서는 Show에 대한 링크 일뿐입니다. – BaroqueBobcat

+0

나는 비계를 생성하고, 데이터베이스를 레이크하고, 귀하의 제안에 따라 routes.rb를 편집하고, 서버를 다시 시작하고/series를 치고 그 오류를 받았습니다. 다른 내용을 수정하거나 변경하지 않았습니다. –

관련 문제