0

私はredmineに問題があります。実際、私は ActiveResource を使用するモデルを作成しました:

require 'active_resource'

class New < ActiveResource::Base
  #self.site = "http://localhost:3000/"
  #self.format = :xml
  #self.user = 'admin'
  #self.password = 'admin'

  class << self
    attr_accessor :api_key
  end

    def save
      prefix_options[:api_key] = self.class.api_key
    super
    end
end


New.site = 'http://localhost:3000'

New.api_key = '471bea6d1c4452b82b57287a281ff04392ae4118'

nw = New.new(:field_1 => 'value 1')
nw.save


# Retrieving news
news = New.find(:all)
puts news.first.title


#Retrieving an new
new = New.find(1)
puts new.description
puts new.author.name

# Creating an new
new = New.new(
:project_id => 1,
:author_id => 1,
:title => 'Annonce',
:summary => 'Annonce',
:description => 'Annonce'
)
if new.save
  puts new.id
else
  puts new.errors.full_messages
end

# Updating an 'new'
new = New.find(1)
new.title = 'NEW INFO '
new.save

# Deleting an new
new = New.find(1)
new.destroy

エラー 404 が発生しました。理由がわかりません。

/Users/bj/.rvm/gems/ruby-1.9.3-p429/gems/activeresource-4.0.0/lib/active_resource/connection.rb:144:in `handle_response': Failed.  Response code =404.  Response message = Not Found . (ActiveResource::ResourceNotFound)

PS : API キーを使用するか、self.site を使用すると、404 も発生します。

助けてください。私は多くのことを試しましたが、すべてが機能しないわけではありません。ご回答ありがとうございます。

4

1 に答える 1

1

基本的な問題は、Redmine が ActiveResource の期待どおりに応答していないことです。これは、Rails 3 の変更が原因である可能性がありますが、Redmine にはまだ適切に反映されていません。

あなたにとって最良の選択肢は、 httpartyのようなものに ActiveResource をドロップすることでしょう。また、Redmine は現在、すべてのニュース ( /news.json) とプロジェクト内のすべてのニュース ( ) のフェッチのみをサポートしていることにも注意してください/projects/test_project/news.json。単一のニュースを直接フェッチすることも、ニュースを作成または更新することも、REST API 経由ではサポートされていません。

編集:コード内の 404 の実際の原因は、ActiveResource が /news.json に POST しようとしたという事実によるものです。これは、上で述べたように、REST API ではサポートされていません。呼び出しを削除するsaveと、別の問題が発生し、ActiveResource が で応答を逆シリアル化できなくなりNew.find(:all)ます。これにより、Redmine と ActiveResource は現在互換性がないことがわかりました。問題を作成するためのRedmine wikiのデモ コードも機能しません。

于 2013-08-23T06:23:49.477 に答える