سؤال

ولدي سؤال سريع حول الموارد النشط. إذا كان لدي مورد المستخدم، عندما أفعل مكالمة مثل

User.find(1).put(:promote, :position => 'manager')

ووفقا للالمعهد فإنه يترجم إلى هذا /users/1/promote.xml؟position=manager دعوة

وسؤالي هو هذا. وactiveresource في الواقع جعل مكالمتين هنا؟ تجد القيام الحصول عليها، ثم وضع على هذا الكائن، أو لا إلحاق. وضع ل.find يعني أنه يجعل من مجرد مكالمة واحدة. إذا كان الأمر كذلك، فإن السبب الوحيد ل.find هو إعطاء شكل رابط السليم لل/ المستخدمين /: معرف / تعزيز ؟؟

وأنا لا يمكن أن تجد في مستندات حيث يمكن تحديد ذلك، ولكن هذا .find أن يجعلني أفكر ربما مكالمتين خدمة تجري؟

هل كانت مفيدة؟

المحلول

وإذا كان يعمل ActiveResource مثل أكتيفيريكورد، وأود أن أقول "نعم". إذا كنت تفعل شيئا مثل

Foo.find(1).update_attributes(:name=>"Bar")

وأكتيفيريكورد أولا يفعل مختارة للحصول على الكائن ومن ثم يصدر نداء تحديث قاعدة البيانات لتغيير السجل. وأود أن نفترض أن ActiveResources الوظائف بطريقة مماثلة حيث تقوم بإصدار اثنين من الخدمات على شبكة الإنترنت تدعو إلى الحصول على الكائن ومن ثم تحديث الكائن.

نصائح أخرى

ضع ما يلي في intializers الخاص بك:

class ActiveResource::Connection
  #   Creates new Net::HTTP instance for communication with
  #   remote service and resources.
  def http
    http = Net::HTTP.new(@site.host, @site.port)
    http.use_ssl = @site.is_a?(URI::HTTPS)
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl
    http.read_timeout = @timeout if @timeout
    #Here's the addition that allows you to see the output
    http.set_debug_output $stderr
    return http
  end
end

وبحث "http.set_debug_output $ ستدير" "ActiveResource" "للبحث عن المؤلف الأصلي من هذا غيض من المفيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top