NoMethodError

First, what I wanna do is:

Have a page where I must write a name and choose a option on a select…
The “nome” is a string of the Class Perfil and “acesso” is a string of
the Class TipoAcesso.

TipoAcesso belongs_to Perfil
Perfil has_many TipoAcesso

I’ve created 3 TipoAcesso on the Rails Console, where those TipoAcesso
don’t will change, the user just choose one of them.


Then I got this error message:

NoMethodError in PerfisController#create

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.call
<<<<<

With this respective code:

Perfis Controller<<<<<<<<

class PerfisController < ApplicationController
def index
end

def lista
@perfis = Perfil.all

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @perfis }
end

end

GET /tipo_acessos/1

GET /tipo_acessos/1.xml

def show
@perfil = Perfil.find(params[:id])

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @perfil }
end

end

GET /tipo_acessos/new

GET /tipo_acessos/new.xml

def new
@perfil = Perfil.new

respond_to do |format|
  format.html # new.html.erb
  format.xml  { render :xml => @perfil }
end

end

GET /tipo_acessos/1/edit

def edit
@perfil = Perfil.find(params[:id])
end

POST /tipo_acessos

POST /tipo_acessos.xml

def create
@perfil = Perfil.new(params[:perfil])

respond_to do |format|
  if @perfil.save
    flash[:msg] = 'Perfil criado com sucesso.'
    redirect_to :action => 'show'
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @perfil.errors, :status =>

:unprocessable_entity }
end
end
end

PUT /tipo_acessos/1

PUT /tipo_acessos/1.xml

def update
@perfil = Perfil.find(params[:id])

respond_to do |format|
  if @perfil.update_attributes(params[:perfil])
    flash[:msg] = 'Perfil editado com sucesso.'
    redirect_to :action => 'show'
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @perfil.errors, :status =>

:unprocessable_entity }
end
end
end

DELETE /tipo_acessos/1

DELETE /tipo_acessos/1.xml

def destroy
@perfil = Perfil.find(params[:id])
@perfil.destroy

respond_to do |format|
  format.html { redirect_to(tipo_acessos_url) }
  format.xml  { head :ok }
end

end

end

View Show<<<<<<<<<<<<<

Detalhes do perfil <%= @perfil.nome %>

Nome: <%= @perfil.nome %>

Tipo de acesso: <%= @perfil.acesso %>

<%= link_to 'Editar', :action => 'edit' %>

<%= link_to ‘Excluir’, :action => ‘destroy’,
:confirm => ‘Confirma a exclusão do registro?’%>

View New<<<<<<<<<<<<<<<<<

Criação de perfil

<% form_for :perfil, :url => {:action => ‘create’} do |form| %>

<%= form.label :nome, 'Nome' %>

<%= form.text_field :nome %>

<%= form.label :acesso, 'Tipo de acesso' %>

<%= select :acesso, :acesso.id, TipoAcesso.find(:all).collect{|tipo| [tipo.acesso, tipo.id]}, {:prompt => 'Escolha um acesso'} %>

<%= form.submit “Criar” %>
<% end %>

Model Perfil<<<<<<<<<<<

class Perfil < ActiveRecord::Base
validates_presence_of :nome, :message => “deve ser preenchido.”
has_many :tipo_acesso
end

Migrate Perfil<<<<<<<<<<<

class CreatePerfis < ActiveRecord::Migration
def self.up
create_table :perfis do |t|
t.string :nome
t.string :acesso
t.timestamps
end
end

def self.down
drop_table :perfis
end
end

Model TipoAcesso<<<<<<<<<<<<<<<

class TipoAcesso < ActiveRecord::Base
belongs_to :perfil

end

Migrate TipoAcesso<<<<<<<<<<<<<<<

class CreateTipoAcessos < ActiveRecord::Migration
def self.up
create_table :tipo_acessos do |t|
t.string :acesso
t.timestamps
end
end

def self.down
drop_table :tipo_acessos
end
end


Then I’ve change the method “create” of PerfisController

from:

def create
@perfil = Perfil.new(params[:perfil])

respond_to do |format|
  if @perfil.save
    flash[:msg] = 'Perfil criado com sucesso.'
    redirect_to :action => 'show'
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @perfil.errors, :status =>

:unprocessable_entity }
end
end
end
<<<<<

to:

def create
@perfil = Perfil.new(params[:perfil])

respond_to do |format|
  if @perfil.save
    format.html do
      flash[:msg] = 'Perfil criado com sucesso.'
      redirect_to :action => 'show'
    end
    format.xml { render :xml => @perfil.to_xml }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @perfil.errors, :status =>

:unprocessable_entity }
end
end
end
<<<<<

And now i’m getting the following error message:

ActiveRecord::RecordNotFound in PerfisController#show

Couldn’t find Perfil without an ID

RAILS_ROOT: C:/Documents and Settings/pauloandre/Meus
documentos/NetBeansProjects/caos_local
Application Trace | Framework Trace | Full Trace

C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1572:in
find_from_ids' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:616:infind’
C:/Documents and Settings/pauloandre/Meus
documentos/NetBeansProjects/caos_local/app/controllers/perfis_controller.rb:18:in
`show’

C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1572:in
find_from_ids' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:616:infind’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1322:in
perform_action' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:incall_filters’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:in
perform_action_with_filters' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:inperform_action_with_benchmark’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in
ms' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:inrealtime’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in
ms' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:inperform_action_with_benchmark’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:in
perform_action_with_rescue' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:inperform_action_with_flash’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in
process' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:inprocess_with_filters’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:in
process' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:indispatch’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in
_call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:ininitialize’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
cache' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:incache’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:48:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:ineach’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:inservice’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/httpserver.rb:104:in
service' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/httpserver.rb:65:inrun’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/server.rb:173:in
`start_thread’

C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1572:in
find_from_ids' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:616:infind’
C:/Documents and Settings/pauloandre/Meus
documentos/NetBeansProjects/caos_local/app/controllers/perfis_controller.rb:18:in
show' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1322:inperform_action’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:in
call_filters' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:inperform_action_with_filters’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in
perform_action_with_benchmark' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:inms’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in
realtime' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:inms’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in
perform_action_with_benchmark' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:inperform_action_with_rescue’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:in
perform_action_with_flash' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:inprocess’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:in
process_with_filters' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:inprocess’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:in
dispatch' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in_call’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:in
initialize' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:incache’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:in
cache' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:48:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
each' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in
call' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:incall’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:in
service' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/httpserver.rb:104:inservice’
C:/Netbeans/NetBeans
6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/httpserver.rb:65:in run' C:/Netbeans/NetBeans 6.7.1/ruby2/jruby-1.2.0/lib/ruby/1.8/webrick/server.rb:173:instart_thread’
:1:in `start’
<<<<<<

I’ve tried to let the role code organized, i hope this works…
I allready appreciate any kind of help. :slight_smile:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs