diff --git a/lib/skroutz/resource.rb b/lib/skroutz/resource.rb
index <HASH>..<HASH> 100644
--- a/lib/skroutz/resource.rb
+++ b/lib/skroutz/resource.rb
@@ -11,7 +11,7 @@ class Skroutz::Resource
   end
 
   def resource
-    @resource ||= self.class.to_s.demodulize.downcase
+    @resource ||= self.class.to_s.demodulize.tableize.singularize
   end
 
   def resource_prefix
diff --git a/spec/skroutz/resource_spec.rb b/spec/skroutz/resource_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/skroutz/resource_spec.rb
+++ b/spec/skroutz/resource_spec.rb
@@ -42,6 +42,28 @@ describe Skroutz::Resource do
     end
   end
 
+  describe '#resource' do
+    let(:class_name) { 'Favorite' }
+
+    before do
+      allow(resource).to receive_message_chain('class.to_s').and_return(class_name)
+    end
+
+    subject { resource.resource }
+
+    it { is_expected.to be_a(String) }
+
+    context 'when resource is a single word' do
+      it { is_expected.to eq('favorite') }
+    end
+
+    context 'when resource contains multiple words' do
+      let(:class_name) { 'FavoriteList' }
+
+      it { is_expected.to eq('favorite_list') }
+    end
+  end
+
   describe '#inspect' do
     subject { resource.inspect }
Properly handle multiple words in Resource#resource