2013-02-19 2 views
0

이전하기 전에 웹 사이트는 완전히 괜찮습니다. 이제 우리는 새로운 서버로 마이그레이션하고 웹 사이트는 몇 가지 링크에 대한 오류의 이러한 종류를 보여주는 시작 : http://babybum.proj.dev.doo.is/sao-paulo/plantaRuby on Rails 웹 사이트 마이그레이션 및 경로

이 공정 컨트롤러

def area 
     @area_name = BB_MENU_AREAS_SLUG.select {|k, v| v == params[:area]}.keys.first 
     if @area_name 
      @area = Snippet.find_by_identifier([params[:fair_location], @area_name.to_s].join('-')) 
     else 
      redirect_to root_path 
     end 
    end 

BB_AREAS_SLUG

의 조각을에서 "영역"의 정의입니다
BB_AREAS = { 
:about   => {:link => "quem somos", :slug => "quem-somos"}, 
:expositors  => {:link => "expositores",:slug => "expositores"}, 
:map   => {:link => "planta", :slug => "planta"}, 
:activities  => {:link => "atividades",:slug => "atividades"}, 
:address  => {:link => "como chegar",:slug => "como-chegar"}, 
:support  => {:link => "apoio", :slug => "apoio"}, 
:optin   => {:link => "cadastro",:slug => "cadastro"}, 
:how_expositors => {:link => "como expor",:slug => "como-expor"}, 
:press   => {:link => "imprensa",:slug => "imprensa"}, 
:contact  => {:link => "contato",:slug => "contato"}, 
} 

BB_MENU_AREAS  = BB_AREAS.each_with_object({}) { |(k, v), h| h[k] = v[:link]} 
BB_MENU_AREAS_SLUG = BB_AREAS.each_with_object({}) { |(k, v), h| h[k] = v[:slug]} 

나를 도와 줄 수 있습니까?

고맙습니다.

+0

': 당신은

@area_name = BB_MENU_AREAS_SLUG.select {|k, v| v == params[:area]}.keys.first 

@area_name = Hash[BB_MENU_AREAS_SLUG.select {|k, v| v == params[:area]}].keys.first 

을 변경하거나 심지어로 굴절 할 필요가 [[:지도 "란타은"]] : Array'는'{해야한다 map : "planta"} : 해쉬 (Hash') 아마도 이러한 상황을 해결하기 위해 자신 만의 마이그레이션을 작성하십시오. – User

+0

정확히 16 번 줄은 무엇입니까? – User

+0

BB_MENU_AREAS_SLUG의 내용이나 스 니펫을 붙여 넣을 수 있습니까? – rossta

답변

2

적절하게 문제는 다른 Ruby 버전입니다. 나는 그것을 테스트 할 1.8이 없지만 propably 오래 된 서버에 1.8.x 있고 지금 1.9.x입니다.

@area_name = BB_MENU_AREAS_SLUG.find { |_, v| v == params[:area] }.first 
+0

내 문제가 해결되었습니다. 대단히 감사합니다 !! – rafaame

+0

@ ukasz-niemier, BB_MENU_AREAS와 BB_MENU_AREAS_SLUG를 정의하는 방법은 메뉴의 링크 순서가 잘못되었습니다 (babybum.proj.dev.doo.is 참조). 나는 BB_AREAS가 정의 된대로 정확한 순서로 메뉴를 원한다. 그것은 1.8.x에서 일하고 있었고 1.9에서는 더 이상 작동하지 않습니다. 그걸 도와 줄 수있어? 고맙습니다. – rafaame

+0

아니요. Ruby 1.8.x의 해시는 분류되지 않았으므로 ['ActiveSupport :: OrderedHash'] (http://api.rubyonrails.org/classes/ActiveSupport/OrderedHash.html)를 사용할 수 있습니다. – Hauleth

관련 문제