Use null for default host
diff --git a/src/ruby/ext/grpc/rb_channel.c b/src/ruby/ext/grpc/rb_channel.c
index 43d9937..ac591f1 100644
--- a/src/ruby/ext/grpc/rb_channel.c
+++ b/src/ruby/ext/grpc/rb_channel.c
@@ -203,7 +203,10 @@
   grpc_channel *ch = NULL;
   grpc_completion_queue *cq = NULL;
   char *method_chars = StringValueCStr(method);
-  char *host_chars = StringValueCStr(host);
+  char *host_chars = NULL;
+  if (host != Qnil) {
+    host_chars = StringValueCStr(host);
+  }
 
   cq = grpc_rb_get_wrapped_completion_queue(cqueue);
   TypedData_Get_Struct(self, grpc_rb_channel, &grpc_channel_data_type, wrapper);
diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb
index 745eab4..a2f1ec6 100644
--- a/src/ruby/lib/grpc/generic/client_stub.rb
+++ b/src/ruby/lib/grpc/generic/client_stub.rb
@@ -410,7 +410,7 @@
     # @param timeout [TimeConst]
     def new_active_call(method, marshal, unmarshal, timeout = nil)
       deadline = from_relative_time(timeout.nil? ? @timeout : timeout)
-      call = @ch.create_call(@queue, method, @host, deadline)
+      call = @ch.create_call(@queue, method, nil, deadline)
       ActiveCall.new(call, @queue, marshal, unmarshal, deadline, started: false)
     end
   end
diff --git a/src/ruby/spec/call_spec.rb b/src/ruby/spec/call_spec.rb
index 4977c10..36a442f 100644
--- a/src/ruby/spec/call_spec.rb
+++ b/src/ruby/spec/call_spec.rb
@@ -137,7 +137,7 @@
   end
 
   def make_test_call
-    @ch.create_call(client_queue, 'dummy_method', 'dummy_host', deadline)
+    @ch.create_call(client_queue, 'dummy_method', nil, deadline)
   end
 
   def deadline
diff --git a/src/ruby/spec/channel_spec.rb b/src/ruby/spec/channel_spec.rb
index d471ff5..9081f0e 100644
--- a/src/ruby/spec/channel_spec.rb
+++ b/src/ruby/spec/channel_spec.rb
@@ -117,7 +117,7 @@
       deadline = Time.now + 5
 
       blk = proc do
-        ch.create_call(cq, 'dummy_method', 'dummy_host', deadline)
+        ch.create_call(cq, 'dummy_method', nil, deadline)
       end
       expect(&blk).to_not raise_error
     end
@@ -128,7 +128,7 @@
 
       deadline = Time.now + 5
       blk = proc do
-        ch.create_call(cq, 'dummy_method', 'dummy_host', deadline)
+        ch.create_call(cq, 'dummy_method', nil, deadline)
       end
       expect(&blk).to raise_error(RuntimeError)
     end
diff --git a/src/ruby/spec/client_server_spec.rb b/src/ruby/spec/client_server_spec.rb
index ed80325..57c9a8d 100644
--- a/src/ruby/spec/client_server_spec.rb
+++ b/src/ruby/spec/client_server_spec.rb
@@ -61,7 +61,7 @@
   end
 
   def new_client_call
-    @ch.create_call(@client_queue, '/method', 'foo.test.google.fr', deadline)
+    @ch.create_call(@client_queue, '/method', nil, deadline)
   end
 end
 
diff --git a/src/ruby/spec/generic/active_call_spec.rb b/src/ruby/spec/generic/active_call_spec.rb
index bc3bee3..424b2db 100644
--- a/src/ruby/spec/generic/active_call_spec.rb
+++ b/src/ruby/spec/generic/active_call_spec.rb
@@ -338,7 +338,7 @@
   end
 
   def make_test_call
-    @ch.create_call(@client_queue, '/method', 'a.dummy.host', deadline)
+    @ch.create_call(@client_queue, '/method', nil, deadline)
   end
 
   def deadline