0

移行前は、ウェブサイトはまったく問題ありませんでした。今、私たちは新しいサーバーに移行し、ウェブサイトはいくつかのリンクに対してこの種のエラーを表示し始めました: http://babybum.proj.dev.doo.is/sao-paulo/planta

これはフェアコントローラーの「エリア」の定義です

    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]}

誰かが私を助けることができますか?

ありがとうございました

4

1 に答える 1

2

おそらく問題は別の Ruby バージョンです。テストする1.8はありませんが、おそらく古いサーバーでは1.8.xがあり、現在は1.9.xです。変更する必要があります

@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

またはそれを次のように屈折させます:

@area_name = BB_MENU_AREAS_SLUG.find { |_, v| v == params[:area] }.first
于 2013-02-19T13:04:43.900 に答える