我试图让Redmine 2.4.7在Ruby 1.9.3-p551上运行。我已按照此处的说明操作:http://www.redmine.org/projects/redmine/wiki/redmineinstall使用
bundle install --without development test rmagick
我的服务器使用以下命令正确启动:
C:\Redmine\redmine-2.4.7>ruby script/rails server webrick -e production
=> Booting WEBrick
=> Rails 3.2.19 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2015-01-06 03:44:56] INFO WEBrick 1.3.1
[2015-01-06 03:44:56] INFO ruby 1.9.3 (2014-11-13) [i386-mingw32]
[2015-01-06 03:44:56] INFO WEBrick::HTTPServer#start: pid=11844 port=3000
但是尝试访问任何页面都会导致此错误:
NoMethodError (undefined method `find_by_name' for Setting():Class):
app/models/setting.rb:243:in `find_or_default'
app/models/setting.rb:108:in `[]'
app/models/setting.rb:141:in `rest_api_enabled?'
app/controllers/application_controller.rb:119:in `find_current_user'
app/controllers/application_controller.rb:100:in `user_setup'
我已经尝试了
gem update --system
但仍然是同一个问题。
安装的宝石如下:
C:\Redmine\redmine-2.4.7>gem list
*** LOCAL GEMS ***
actionmailer (3.2.19)
actionpack (3.2.19)
activemodel (3.2.19)
activerecord (3.2.19)
activerecord-sqlserver-adapter (3.2.12)
activeresource (3.2.19)
activesupport (3.2.19)
arel (3.0.3)
bigdecimal (1.1.0)
builder (3.0.0)
bundler (1.7.11)
coderay (1.1.0)
erubis (2.7.0)
hike (1.2.3)
i18n (0.7.0)
io-console (0.3)
journey (1.0.4)
jquery-rails (2.0.3)
json (1.8.1, 1.5.5)
mail (2.5.4)
mime-types (1.25.1)
minitest (2.5.1)
multi_json (1.10.1)
net-ldap (0.3.1)
polyglot (0.3.5)
rack (1.4.5)
rack-cache (1.2)
rack-openid (1.4.2)
rack-ssl (1.3.4)
rack-test (0.6.2)
rails (3.2.19)
railties (3.2.19)
rake (10.1.1, 0.9.2.2)
rdoc (3.12.2, 3.9.5)
ruby-openid (2.3.0)
rubygems-update (2.4.5)
sprockets (2.2.3)
thor (0.19.1)
tilt (1.4.1)
tiny_tds (0.5.1 x86-mingw32)
treetop (1.4.15)
tzinfo (0.3.42)
抛出错误的方法如下所示
private
# Returns the Setting instance for the setting named name
# (record found in database or new record with default value)
def self.find_or_default(name)
name = name.to_s
raise "There's no setting named #{name}" unless @@available_settings.has_key?(name)
setting = find_by_name(name)
unless setting
setting = new(:name => name)
setting.value = @@available_settings[name]['default']
end
setting
end
end
答案 0 :(得分:1)
find_by_*
,但根据gem列表,我可以看到你正在使用rails < 4
,但我仍然认为它与rails版本有关。
但是,如果查看主分支,则更新语法
https://github.com/redmine/redmine/blob/master/app/models/setting.rb#L246
因此,我认为升级redmine
应解决问题
答案 1 :(得分:0)
你的输出说: app / models / setting.rb:243:在`find_or_default'
你能告诉我们第243行附近的方法或至少最小的逻辑块吗?