2011-09-30 3 views
0

나는 newb이고 내 바보 같은 질문 때문에 유감입니다! 제발, 도와주세요 !! 레일즈 3과 함께 일하고 있는데, 내 문제는 다음과 같습니다.레일 3의 루비에서 "acts_as_url"을 사용할 수 없습니다.

나는 모델명 : gem 'mongoid'를 사용하는 사진이 있습니다.

mongoid에서 읽을 수없는 '_id'대신 읽을 수있는 url 인 permalink를 만들고 싶습니다!

Google에서 검색 한 후 'stringex'라는 보석을 발견했습니다.

난 그냥 GitHub의 Readme_rsl/stringex의 가이드 다음 모든 것을 할

gem 'stringex' 

다음 번들을 사용하는 '설치 "를 실행하지만 문제가 발생합니다. 나는이 보석을 사용하고 내 Gemfile에이 줄을 추가하기로 결정 :

undefined method `acts_as_url' for Photo:Class 

는 ROR 3이 보석을 지원하지 않습니다 아니면 내가 뭔가를 놓친 때문에인가 , 내가 도움이 필요하세요

답변

0

귀하의 m?! odel은 나중에 사용할 수 있도록 좋은 URL을 데이터베이스에 저장하는 url 속성이 있어야합니다.

왜 내가 README에 언급하지 않는지 모르겠다. 나는 두 개의 기사를 읽은 후에 그것을 발견했다.

0

내 경우에 rails server 명령을 다시 시작하면 도움이되었습니다.

2

아마도이 답변은 찾고있는 답변이 아니지만 "그럴 수는 없습니다"라고 생각합니다. 적어도 현재는 아닙니다.

언급 한 보석은 ActiveRecord에 밀접하게 연결되어 있습니다 (issue ticket 참조). stringex 소스 코드를 lib/stringex.rb으로 보면, acts_as_url은 Mongoid가 아닌 ActiveRecord에만 포함되어 있음을 알 수 있습니다.

당신의 모델에서 몽고 이드를 사용하고 있으며 훌륭한 acts_as_url 메소드가 몽고 이드 :: 문서에 첨부되어 있지 않습니다. Mongoid에 acts_as_url을 포함 시키려면 lib/stringex.rb를 수정하는 것만 큼 간단 할 수도 있습니다.하지만 그렇게 간단하다면 이미 완료되었을 것입니다.

그렇다면 어디에서 떠나나요? other ways ~ generate slugs이 있습니다. 나는 그들 중 누구도 사용하지 않았기 때문에 어떤 사람들이 좋든 싫든 말할 수 없다. 인터넷 검색을 통해 "몽고트 슬러그 세대"가 올바른 방향으로 나아갈 수 있습니다.

0

이것은 자신을 쓰는 것이 어렵지 않습니다. 레일과 루트의 일부분을 이해하는 데 도움이 될 것입니다.

  1. '퍼머 링크'열을 db에 추가하십시오. 모델에 데프 to_param 수단 추가 제어기
  2. 에서와 create_permalink의 before_validations 방법을 추가 퍼머 열
  3. 를 반환 :
  4. 는 find_by_permalink ([ID] PARAMS)을 수행. 그런데 permalink를 생성하고 db에 저장하십시오.

유일한 트릭은 고유성을 보장하고 이름 (및 URL)을 변경하는 것입니다. stringex는 이름 변경이 아닌 고유성에 도움이되는 것처럼 보입니다.

새 이름이 있으면 이름 변경 (별칭 지정 및 리디렉션)에 도움이되는 다른 보석이 있습니다. 다른 방식으로 처리 할 수 ​​있습니다.

관련 문제