해결 방안 설정centos에서 redmine 2.3.0 내 계정과 개인 설정을 누르면 500 오류가 발생하는 해결 방안

4088 단어 redmine
문장이 끝나면 여러분에게 프로그래머의 농담을 드리겠습니다. [M]
최근에 회사에서 레드마인을 업그레이드하려고 하는데 버전이 2.3.0이라고 요구했다. 이전에 탑승했기 때문에 구축 과정은 순조로운 편이지만 탑승 후에 문제가 발견되었다. 백그라운드 로그인 후'내 계정'과'관리'-'설정'을 클릭하면 오류가 보고되었다.페이지 알림 Internal error, 페이지 제목은 redmine 500 error입니다.log의 오류 정보는 다음과 같습니다.
Processing by MyController#account as HTML

  Current user: test (id=3)

  Rendered my/account.html.erb within layouts/base (8.6ms)

Completed 500 Internal Server Error in 16ms



ActionView::Template::Error (wrong number of arguments (2 for 1)):

    16:   <p><%= f.text_field :firstname, :required => true %></p>

    17:   <p><%= f.text_field :lastname, :required => true %></p>

    18:   <p><%= f.text_field :mail, :required => true %></p>

    19:   <p><%= f.select :language, lang_options_for_select %></p>

    20:   <% if Setting.openid? %>

    21:   <p><%= f.text_field :identity_url  %></p>

    22:   <% end %>

  lib/redmine/i18n.rb:95:in `languages_options'

  app/helpers/application_helper.rb:974:in `lang_options_for_select'

  app/views/my/account.html.erb:19:in `_app_views_my_account_html_erb___278591561__616683068'

  app/helpers/application_helper.rb:989:in `labelled_form_for'

  app/views/my/account.html.erb:9:in `_app_views_my_account_html_erb___278591561__616683068'

인터넷에서는 루비를 1.8.7에서 1.9.3으로 업그레이드하면 이 문제가 해결될 것이라고 말한다.그러나 홈페이지 위의 버전을 대조해 보면 레드마인 2.3.0은 루비 1.8.7을 사용할 수 있는 것이다. 게다가 내가 루비 1.9.3을 설치한 후에 환경에 문제가 생겼다. (자체 이 딱딱한 곳에 루비가 두 세트가 설치되었기 때문에 그 중 한 세트는 누가 설치했는지 알 수 없다. 어차피 구판본인데 사용하지 않아서 내가 이번에 설치한 후에 각종 충돌이 호환되지 않기 때문에) 이 해결 방안을 폐기했기 때문에 여러분들이 흥미를 가지고 드셔보셔도 된다.
나중에 다른 해결 방안을 찾았는데 마침내 나의 문제를 해결했습니다. 아래와 같이 여러분에게 참고하도록 하겠습니다.
#cd /var/www/redmine

#vi app/helpers/application_helper.rb

매일의 이치
생활의 어쩔 수 없는 것은 때때로 자아에서 비롯되지 않고 다른 사람이 무심코 쌓는 것이다. 그것은 일종의 음차양조이다.생활은 본래 모순이다. 낮과 밤의 거리, 봄, 여름, 가을, 겨울 사이의 윤회. 그래서 까다로운 사랑이 생겨서 어쩔 수 없이 기쁨의 기다림을 더했다.
다음 내용을 찾아 응답 삭제 또는 추가합니다.
def lang_options_for_select(blank=true)

    (blank ? [["(auto)", ""]] : []) + languages_options   // 

    (blank ? [["(auto)", ""]] : []) +                     // 

      valid_languages.collect{|lang| [ ll(lang.to_s, :general_lang_name), lang.to_s]}.sort{|x,y| x.last <=> y.last }  // 

   end
#vi lib/redmine/i18n.rb

다음 내용을 찾아 모두 삭제합니다.
# Returns an array of languages names and code sorted by names, example:

    # [["Deutsch", "de"], ["English", "en"] ...]

    #

    # The result is cached to prevent from loading all translations files.

    def languages_options

      ActionController::Base.cache_store.fetch "i18n/languages_options" do

        valid_languages.map {|lang| [ll(lang.to_s, :general_lang_name), lang.to_s]}.sort {|x,y| x.first <=> y.first }

      end      

    end
# vi test/unit/lib/redmine/i18n_test.rb

다음 내용을 찾아 모두 삭제합니다.
    
def test_languages_options

    options = languages_options



    assert options.is_a?(Array)

    assert_equal valid_languages.size, options.size

    assert_nil options.detect {|option| !option.is_a?(Array)}

    assert_nil options.detect {|option| option.size != 2}

    assert_nil options.detect {|option| !option.first.is_a?(String) || !option.last.is_a?(String)}

    assert_include ["English", "en"], options

  end

다시 운에 맡기면 문제가 모두 해결됩니다, 빙고!!!
    
    
문장이 끝나면 다음 프로그래머의 우스갯소리 어록을 공유합니다. 퀴즈 Q: 당신은 내성적인 프로그래머와 외향적인 프로그래머를 어떻게 구분합니까?A:외향적인 프로그래머가 당신의 신발을 보고 당신과 이야기할 때.Q: 왜 프로그래머는 할로윈과 크리스마스를 구분할 수 없습니까?A:이건 Oct 31 = = Dec 25!(8진법의 31== 10진법의 25)
--------------------------------------------------------------------------------------------------------------------------------------------

좋은 웹페이지 즐겨찾기