기본 메타 설명 및 키워드 태그를 수정하려고합니다. 나는이 문제에 붙어 있고 잘 모르겠다.Spree의 맞춤 메타 설명 및 키워드 태그
나는 그들이 여기에서 설정되고있어 생각 : spree/core/app/helpers/spree/base_helper.rb
기본 메타 설명 및 키워드 태그를 수정하려고합니다. 나는이 문제에 붙어 있고 잘 모르겠다.Spree의 맞춤 메타 설명 및 키워드 태그
나는 그들이 여기에서 설정되고있어 생각 : spree/core/app/helpers/spree/base_helper.rb
이 코드는 테스트되었으며 작동합니다. 솔루션을 찾을 수 있도록 도와 주신 @aledustet :)
/app/helpers/spree/base_helper_decorator.rb
을 만들고 거기에 다음 코드를 입력하십시오. /app/helpers/spree/base_helper.rb
을 사용하지 마십시오. 제대로 작동하려면 base_helper.rb의 모든 메소드를 복사/붙여 넣기해야합니다.
module Spree
module BaseHelper
def meta_data
meta = ({
keywords: "test keyword",
description: "test description",
})
end
end
end
는 또한 다른 사람이 첫째하지 않았다 때 작업이 두 번째 솔루션을보고 어디
Spree::BaseHelper.module_eval do
....
end
은 내가 읽은 할 수있는, 그래서 모두 게시하도록하겠습니다. 둘 모두 나를 위해 잘 작동합니다.
Per Ryan Bigg : class_eval과 module_eval을 사용할 특별한 이유가 없습니다. Spree 프로젝트에서 오랫동안 습관이었습니다. https://stackoverflow.com/a/12075315/2229277
이 시점에서 메타 데이터를 제어 할 수 있지만 컨트롤러 별 설정은 어떻게해야합니까? 개인용 메소드를 작성하고 컨트롤러에서 helper_method 함수를 호출하여이를 수행 할 수 있습니다. 다음은 작업 및 테스트있어 전체 예는 다음과 같습니다가 my_meta_data 방법이 정의되어 있지 않은 경우에는 몇 가지 기본 메타 데이터를 가질 수 있도록
class BrandsController < Spree::StoreController
helper_method :my_meta_data
#controller actions here.
private
def my_meta_data
meta = ({
keywords: "keywords here",
description: "description here",
})
end
end
내 기본 도우미는 다음과 같습니다.
module Spree
module BaseHelper
def meta_data
if (defined? my_meta_data)
meta = my_meta_data
else
meta = ({
keywords: "default keywords here",
description: "default description here",
})
end
end
end
end
당신은 두 번째 줄에 사용할 필요가 :
module Spree
module BaseHelper.class_eval
...
end
end
이 작동합니다.