class User < ActiveResource::Base
self.element_name = "user"
end
Далее, вы собираетесь спросить, как получить один элемент из URL, который выглядит на ActiveResource быть //foo.com/user.json вместо //foo.com/user/.json
User.find(:one, :from => "https://foo.com/user.json?username=#{<USERNAME>}"
Редактировать в ответ на комментарий
есть ли способ сделать это без того, чтобы ввести полный URL запроса каждый раз, когда я хочу использовать находку()?
Один из способов - определить метод в классе для полного URL-адреса для вас.
class User < ActiveResource::Base
self.element_name = "user"
def self.find_by_username(username)
find(:one, :from => "https://foo.com/user.json?username=#{username}"
end
def find
self.class.find(:one, :from => "https://foo.com/user.json?username=#{username}"
end
end
Другой способ - переопределить element_path.
class User < ActiveResource::Base
self.element_name = "user"
def self.element_path(id, prefix_options = {}, options = {})
"https://foo.com/user.json?username=#{prefix_options["user_id"]}"
end
end
Некоторые назвали бы это обезглавливанием обезьян, другие назвали бы это объектно-ориентированным программированием. Я говорю, что это только переключение на обезьяны, когда вы идете в код или используете динамическую природу Ruby, чтобы изменить базовое поведение, и это вполне законный способ сделать что-то в объектно-ориентированном программировании. Тем не менее, сообщество Ruby не использует ООП, почти игнорируя наследование в пользу гораздо более слабых (и менее хорошо себя зарекомендовавших) миксов, и только используя утиную типизацию для полиморфизма.
Проблемы с необходимостью связываться с ActiveResource для создания URL-адреса, где вы не можете переопределить веб-службу для принятия соглашений ActiveResource, - это то, почему многие используют HTTParty. «Если вы должны построить URL, может также использовать HTTParty»
Есть ли способ для этого без необходимости вводить полный URL-адрес запроса каждый раз, когда я хочу использовать find()? –
Вы просили об этом. Ответ отредактирован. –
Вы можете использовать 'site' и' prefix', чтобы составить первую часть URL-адреса. – funwhilelost