私は主にテーブル容量でRails3アプリを開発しています。私はsavon_modelとActiveModelを使用して、同等のActiveRecordと同様の動作を生成しています。以下は私のコードです:
class TestClass
include Savon::Model
include ActiveModel::Validations
# Configuration
endpoint "http://localhost:8080/app/TestService"
namespace "http://wsns.test.com/"
actions :getObjectById, :getAllObjects
attr_accessor :id, :name
def initialize(hash)
@id = hash[:id]
@name = hash[:name]
end
client do
http.headers["Pragma"] = "no-cache"
end
def self.all
h = getAllObjects(nil).to_array
return convert_array_hash_to_obj(h, :get_all_objects_response)
end
def self.find(id)
h = getObjectById(:arg0 => id).to_hash
return convert_hash_to_obj(h, :get_object_by_id_response)
end
private
def self.convert_array_hash_to_obj(arrayhash, returnlabel)
results = Array.new
arrayhash.each do |hash|
results << convert_hash_to_obj(hash, returnlabel)
end
return results
end
def self.convert_hash_to_obj(hash, returnlabel)
return TestClass.new(hash[returnlabel][:return])
end
end
OK、すべてが期待どおりに機能します。値はWebサービスからページにプルされます。残念ながら、クライアント側で生成されたhtmlを見ると、いくつかの問題があります。[表示]リンクは次の行に沿っています。
/testclasses/%23%3CTestClass:0xa814cb4%3E
それ以外の...
/testclasses/1
そこで、出力を比較するために、コンソールにオブジェクト(ハッシュ?)を印刷しました。
[#<System:0xa814cb4 @id="1", @name="CIS">]
私が信じているものの代わりに...
[#<System id="1", name="CIS">]
3つの質問があります:
1:印刷時にクラス名の16進サフィックスは何ですか
2:コンソールに印刷するときに目的の出力に一致するようにクラスを変更するにはどうすればよいですか?
3:フロントエンドリンク(表示、編集、削除)が壊れているのはなぜですか?簡単な修正はありますか?
ごみコード/愚かな質問をありがとうございました。これは私の最初のRubyまたはRailsアプリです!
ガレス