2017-02-27 12 views
0

엔진 접두사를 추가하지 않고 작동하지 않습니다레일 엔진 노선 내가 엔진과 같이 응용 프로그램 내 레일에 장착 한

<%= link_to "New Query", new_query_path, class: "btn btn-info" %> 

이로 리디렉션 : 이제

mount Blazer::Engine, at: "blazer" 

을,이 요청이 얻을

blazer/assets?action=new&controller=blazer%2Fqueries 

대신

blazer/queries/new 

나는 재킷 엔진 쿼리보기를 무시하고 그것에

blazer.new_query_path 

접두사를 추가하는 경우, 그것은 잘 작동하지만, 나는이 일에 내 dev 지점으로 업데이트하기 전에 그것이 일을하더라도 작동하지 않습니다없는 것 .

커밋 수가 너무 많기 때문에 문제를 추적하는 것이 어렵습니다. 왜 갑자기 이런 일이 일어날 지에 대한 조언이 누구에게 있습니까? 엔진과 호스트 응용 프로그램이 동일한 경로는 다음 호스트 경로에 액세스가있는 경우

+0

엔진에 'isolate_namespace' 호출이 있습니까? 그 ERB 코드가 어디서 왔나? 호스트 응용 프로그램 또는 엔진 내부에서? –

+0

ApplicationHelper에 다음과 같은 내용이 포함되어있는 것으로 보입니다 : rails.application.routes.url_helpers. 그게 왜 문제가 될지 모르겠다. – Rogue

+0

이상하다. 나는 헬퍼를 추가하는 대신 엔진 자체의'config.to_prepare' 블록에 - 호스팅 된 응용 프로그램의 경로에 액세스하는 데 사용했습니다. 어쨌든 좋은 결과가 나온 것입니다. –

답변

-1

당신은 당신은 자동 engine.rb

initializer 'blazer', before: :load_config_initializers do 
    Rails.application.routes.append do 
    mount Blazer::Engine => '/' 
    end 
end 

코드 아래에 지정하여 엔진을 장착 할 수 있습니다 root_path

mount Blazer::Engine, at: '/' 

에서 엔진을 마운트해야 as

main_app.route_path