Skip to main content

Get the Reddit app

Scan this QR code to download the app now
Or check it out in the app stores
r/rubyonrails icon
r/rubyonrails icon

r/rubyonrails

members
online

Project feedback Project feedback
Help

Hello, everyone. While I haven't moved from my current stack to Ruby on Rails, which I've set as a professional goal, I've been working on some projects to keep practicing and to learn more about the Rails way and common feature implementations used in the industry.

Recently, I created this project, which is a weather forecast API with some features I've been learning about in courses and training sessions, like integrating with external APIs, design patterns, and more.

I know that in the real world, things don’t always go as smoothly as they do in tutorials. So, I’d be really happy to receive any feedback on the project: https://github.com/thiagomrvieira/weather_app

Thanks in advance!




Error in deploying app in production locally. Error in deploying app in production locally.

So I been developing my app in dev environment and finally finished it and said to myself hey lets start deploying this to fly.io and oh boy I'm stressed and tired troubleshooting this and now im troubleshooting locally first then once its good locally ill try it again.

I was troubleshooting some nonsense for 2 hours then you can actually use this code to run your server RAILS_ENV=production RAILS_LOG_TO_STDOUT=true bin/rails s to get some logs and got this

Use Ctrl-C to stop

I, [2024-09-12T15:21:22.272468 #341] INFO -- : [ff2ff043-058a-481e-84eb-7eb515ee311e] Started GET "/" for 127.0.0.1 at 2024-09-12 15:21:22 +0800

I, [2024-09-12T15:21:22.274372 #341] INFO -- : [ff2ff043-058a-481e-84eb-7eb515ee311e] Processing by QuestsController#index as HTML

I, [2024-09-12T15:21:22.284516 #341] INFO -- : [ff2ff043-058a-481e-84eb-7eb515ee311e] Rendered quests/index.html.erb within layouts/application (Duration: 3.2ms | Allocations: 2020)

I, [2024-09-12T15:21:22.294080 #341] INFO -- : [ff2ff043-058a-481e-84eb-7eb515ee311e] Rendered layout layouts/application.html.erb (Duration: 12.8ms | Allocations: 10616)

I, [2024-09-12T15:21:22.294488 #341] INFO -- : [ff2ff043-058a-481e-84eb-7eb515ee311e] Completed 200 OK in 20ms (Views: 15.2ms | ActiveRecord: 0.0ms | Allocations: 13357)

I, [2024-09-12T15:21:22.373347 #341] INFO -- : [97fead6c-b159-4231-8ac8-13d4c01dbc35] Started GET "/assets/controllers/modal_controller" for 127.0.0.1 at 2024-09-12 15:21:22 +0800

F, [2024-09-12T15:21:22.373926 #341] FATAL -- : [97fead6c-b159-4231-8ac8-13d4c01dbc35]

[97fead6c-b159-4231-8ac8-13d4c01dbc35] ActionController::RoutingError (No route matches [GET] "/assets/controllers/modal_controller"):

[97fead6c-b159-4231-8ac8-13d4c01dbc35]

I, [2024-09-12T15:21:22.376465 #341] INFO -- : [ffab0339-9946-4ef9-82ec-a8c727bc61ab] Started GET "/assets/controllers/sidebar_controller" for 127.0.0.1 at 2024-09-12 15:21:22 +0800

F, [2024-09-12T15:21:22.376991 #341] FATAL -- : [ffab0339-9946-4ef9-82ec-a8c727bc61ab]

[ffab0339-9946-4ef9-82ec-a8c727bc61ab] ActionController::RoutingError (No route matches [GET] "/assets/controllers/sidebar_controller"):

[ffab0339-9946-4ef9-82ec-a8c727bc61ab]

I, [2024-09-12T15:21:22.379721 #341] INFO -- : [671b9bf1-dc2d-4d08-9210-aa1ad92ca307] Started GET "/assets/controllers/dropdown_controller" for 127.0.0.1 at 2024-09-12 15:21:22 +0800

F, [2024-09-12T15:21:22.380544 #341] FATAL -- : [671b9bf1-dc2d-4d08-9210-aa1ad92ca307]

[671b9bf1-dc2d-4d08-9210-aa1ad92ca307] ActionController::RoutingError (No route matches [GET] "/assets/controllers/dropdown_controller"):

[671b9bf1-dc2d-4d08-9210-aa1ad92ca307]

When I saw that I did my best to figure out as of why in prod env the stimulus controller is trying to do a GET route. I doubled check the controllers listed here and while they do have async/fetch it shouldn't be called in the first place because I haven't clicked any button yet.

Like modal_controller for example

import { Controller } from "@hotwired/stimulus";

export default class extends Controller {
  static targets = ["modalTitle", "modalBody"];

  showLoginForm() {
    this.modalTitleTarget.innerText = "Log In";

    fetch("/quests/render_login_form")
      .then(response => response.text())
      .then(html => {
        this.modalBodyTarget.innerHTML = html;
      })
      .catch(error => console.error('Error:', error));
  }

  showRegistrationForm() {
    this.modalTitleTarget.innerText = "Sign Up";

    fetch("/quests/render_registration_form")
      .then(response => response.text())
      .then(html => {
        this.modalBodyTarget.innerHTML = html;
      })
      .catch(error => console.error('Error:', error));
  }
}

What it only does is go to render_registration_form method in quest controller.

Now after I decided that there is no issue about it being a routing issues I move on and thought it might be missing when even though I always precompile my assets
Nope its here:
ls public/assets/controllers

alert_controller-8fcc2f524e9683ca6dec0c03f40affbc76fb27ae1250895f1f6de41b8ae4b197.js

alert_controller-8fcc2f524e9683ca6dec0c03f40affbc76fb27ae1250895f1f6de41b8ae4b197.js.gz

application-daa9025259f63a3d42a78c64248d40b3692a110c02034170bb9eddd118fe02f1.js

application-daa9025259f63a3d42a78c64248d40b3692a110c02034170bb9eddd118fe02f1.js.gz

delete_controller-d3f8d75e1df10113e91febc80cf167a0ca866e5f2eb7609ae4ed8ea1ab7af0a8.js

delete_controller-d3f8d75e1df10113e91febc80cf167a0ca866e5f2eb7609ae4ed8ea1ab7af0a8.js.gz

dropdown_controller-2a3e853c6f22b32fd60ffa202576520ca4225bcdd2ac63c6654ee8867ca55ed6.js

dropdown_controller-2a3e853c6f22b32fd60ffa202576520ca4225bcdd2ac63c6654ee8867ca55ed6.js.gz

editable_controller-4f595a3d9252502cdb9af5a235e58b9eb3457d5c0aafb192a21ab2bfffab9e5a.js

editable_controller-4f595a3d9252502cdb9af5a235e58b9eb3457d5c0aafb192a21ab2bfffab9e5a.js.gz

form_controller-2b68559aebe0d4a012794752cb37f31fd237381f072b0a4ac8d3c16568727a05.js

form_controller-2b68559aebe0d4a012794752cb37f31fd237381f072b0a4ac8d3c16568727a05.js.gz

hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js

hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js.gz

index-31a9bee606cbc5cdb1593881f388bbf4c345bf693ea24e124f84b6d5c98ab648.js

index-31a9bee606cbc5cdb1593881f388bbf4c345bf693ea24e124f84b6d5c98ab648.js.gz

indexdb_controller-3da24e3af1aeea3e59990afbdf0567c48144ee8d08d646d8807800457d48e105.js

indexdb_controller-3da24e3af1aeea3e59990afbdf0567c48144ee8d08d646d8807800457d48e105.js.gz

modal_controller-7aca490e5766b11b0f16013a88a4184a4703fe6b26d95c4c79fb375c8c109625.js

modal_controller-7aca490e5766b11b0f16013a88a4184a4703fe6b26d95c4c79fb375c8c109625.js.gz

quest_controller-c77dfba92de404a19837dc56ded2c5ff97f455275de9a328f12f18cdcf98c658.js

quest_controller-c77dfba92de404a19837dc56ded2c5ff97f455275de9a328f12f18cdcf98c658.js.gz

sidebar_controller-19fa4568277298cbea4f82fbb7f3069c2b38acf34358f75d7de17ad73bdd19f7.js

sidebar_controller-19fa4568277298cbea4f82fbb7f3069c2b38acf34358f75d7de17ad73bdd19f7.js.gz

task_controller-1255db7eef191b3b980897fff03850649d9e764711f1a98c42370940fa5d2ec5.js

task_controller-1255db7eef191b3b980897fff03850649d9e764711f1a98c42370940fa5d2ec5.js.gz

theme_toggle_controller-04aca0d091ad85b08336bab8c6bfdf68f9b45813ab5a8f9675f2305c7a2ea330.js

theme_toggle_controller-04aca0d091ad85b08336bab8c6bfdf68f9b45813ab5a8f9675f2305c7a2ea330.js.gz

trunc_controller-b3deb0dd6edadebf2ac5ed03f085cea3c4a408d7fdf1dc6b8d4994c6a48a0c4a.js

trunc_controller-b3deb0dd6edadebf2ac5ed03f085cea3c4a408d7fdf1dc6b8d4994c6a48a0c4a.js.gz

Then It might be not being called properly? And at this point I do not know what is happening so I asked chatgpt and claude and been circling in these 7 files adding and removing same lines again and again.

application.html.erb (here i am attaching the importmap)

<head>
  <title>YourApp</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <%= csrf_meta_tags %>
  <%= csp_meta_tag %>
  <%= stylesheet_link_tag 'application', 'data-turbo-track': 'reload' %>
  <%= javascript_importmap_tags %>
</head>

importmap.rb

pin "application"
pin "@hotwired/turbo-rails", to: "turbo.min.js"
pin "@hotwired/stimulus", to: "stimulus.min.js"
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js"
pin_all_from "app/javascript/controllers", under: "controllers"
pin "flowbite", to: "https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.8.0/flowbite.turbo.min.js"

app/javascript/controllers/application.js

import { Application } from "@hotwired/stimulus"
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading";
import ModalController from "./modal_controller";
import SidebarController from "./sidebar_controller";
import DropdownController from "./dropdown_controller";

const application = Application.start()
eagerLoadControllersFrom("controllers", application);
application.register("modal", ModalController);
application.register("sidebar", SidebarController);
application.register("dropdown", DropdownController);

// Configure Stimulus development experience
application.debug = false
window.Stimulus = application

export { application }

app/javascript/application.js

import "@hotwired/turbo-rails";
import "controllers";
import "flowbite"

production.rb

require "active_support/core_ext/integer/time"

Rails.application.configure do
  # FOR DEPLOYMENT POSSIBLE FIXES
  config.public_file_server.enabled = true
  config.assets.compile = false
  config.assets.digest = true

  
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.public_file_server.enabled = true
  config.active_storage.service = :local
  config.log_level = :info
  config.log_tags = [ :request_id ]
  config.action_mailer.perform_caching = false
  config.i18n.fallbacks = true
  config.active_support.report_deprecations = false
  config.log_formatter = ::Logger::Formatter.new



  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end

  config.active_record.dump_schema_after_migration = false
end

assets.rb

Rails.application.config.assets.version = "1.0"
Rails.application.config.assets.preload_links_header = false
Rails.application.config.assets.precompile += %w( controllers )

manifest.js

//= link_tree ../images
//= link_tree ../../javascript .js
//= link_tree ../../../vendor/javascript .js
//= link_tree ../builds
//= link_directory ../stylesheets .css

Can anyone help a brother out. It's my first app which a simple To-do app and I've spent 4 grueling weeks to finish it.


nested or nested or

Experts, I'm new to rails and trying to do a nested OR:

I have

class Tag < ApplicationRecord
    has_and_belongs_to_many :venues
end

class Venue < ApplicationRecord
    has_and_belongs_to_many :tags
    has_many :letters
end

class Letter < ApplicationRecord
    belongs_to :venue
end

class Event < ApplicationRecord
    belongs_to :letter
end

The main relations are Event -> Letter -> Venue

I'm trying to get all events that belongs to some venue, wherevenue.preview_key = PREVIEW_KEY OR venue.visible = 1 but I'm not sure how to write it

events = Event
        .includes(letter: {venue: :tags})
        .where(letter: {venues: {visible: 1}}).or()....???

many thanks



Interview for mid level RoR developer Interview for mid level RoR developer
Help

Interview for mid level RoR developer

Hey guys! Currently I'm preparing for interview for mid-level backend developer with ruby, ror ...

I need ur help, what kind of questions that are being asked nowadays? What kind of questions can I expect?

I already finished preparing but wanna be fully ready for any questions, could you plz provide me with a list of most aske questions you have been asked recently? About Ruby, RoR, databases, API design and integration, CS concepts, CS basic ...

Thanks in advance for taking some your time to help me ❤️


Why Kamal stinks, and thruster is actually good Why Kamal stinks, and thruster is actually good

Basecamp released Kamal earlier this year in a effort to improve the process of deploying web applications to production. Previously you would need to write a deploy script and also configure the virtual machine to install the needed dependencies for the web app to run correctly. Then the deploy script would help you push your code without having to manually ssh into the VM and pull code from the repo.

Kamal was built with good intentions and for some people it does work. I have tried multiple times to get Kamal to work with the docker build step freezing on my Ubuntu/WSL setup and with the same code on mac it works but then the deployed app with traefik doesn't work at all. I can't access the site and the only logs that I'm getting are about the health check. This was extremely frustrating and I wanted to keep going to figure out how to get Kamal to work but I realized it's just a wrapper around Docker.

If you use Docker and are familiar with the idea of pushing images it makes it a lot easier. I have used Docker for years now and feel pretty comfortable with it but still using Kamal just doesn't seem to work. I tried everything and felt like I had a good setup the build was working fine but the results with the docker containers running it still didn't work.

In comparison I used the thruster gem to publish my apps recently and it took less time because no docker image build step. I take advantage of the DigitalOcean Rails 1 click installer which includes Ruby on Rails and Postgresql setup already then I pull my apps code bundle, setup the database and precompile the assets then run a simple thruster command.

TLS_DOMAIN=myapp.example.com RAILS_ENV=production RAILS_MASTER_KEY=123secretkey thrust bin/rails server

and boom your app is live and working right away. You can also remove the TLS_DOMAIN option to use the IP address directly

Here's a video showing how simple it is to launch a website using Ruby on Rails/TailwindCSS and Thruster on DigitalOcean https://www.youtube.com/watch?v=fpPfJjO-bbQ&ab_channel=IndigoTechTutorials



Who’s Heading to Euruko 2024? Let’s Share Tips, Plans, and Excitement! 🚀 Who’s Heading to Euruko 2024? Let’s Share Tips, Plans, and Excitement! 🚀

Hey everyone! As we gear up for Euruko 2024, I’m curious to know how many of you are planning to attend and what you’re most excited about! Whether it’s specific talks, workshops, networking opportunities, or just soaking up the Ruby vibes, share your plans and tips! 📷 **If you're attending**, what sessions are you most excited about, and do you have any insider tips for first-timers? 📷 **If you're following online**, what talks or discussions are you hoping to catch? 📷 **For those on the fence**, what factors will help you decide? Maybe we can help! 📷 **And for those who can’t make it this year**, what could Euruko do to attract you next year? Let’s get a conversation going and help each other make the most out of Euruko 2024! 📷

Closed total votes
*I'm attending in person! 🙌
Following the event online
Still deciding 🤔
Not this year, but maybe next time!
Voting closed


Problems installing ruby and rails on Mac with apple silicon Problems installing ruby and rails on Mac with apple silicon

I had trouble with installing ruby and rails on my Mac with M2 and it took me hours to figure out what is wrong. If anybody is having problems try to do it like this:

  1. install homebrew

  2. brew install rbenv ruby-build

  3. rbenv init

  4. add 'eval "$(rbenv init -)"' to ~/.zshrc

  5. source ~/.zshrc or reopen the terminal

  6. rbenv install 3.3.5

  7. rbenv global 3.3.5

  8. reopen the terminal and check it with ruby -v

  9. gem install rails

  10. check rails -v

Hope that this helps.



Upgrade Ruby using dual boot Upgrade Ruby using dual boot

Our latest blog is on Upgrade Ruby using dual boot.

Recently, we upgraded all Neeto product's Ruby version from 3.2.2 to 3.3.0 using "dual-booting". Dual-booting is a process that allows you to run your application with different sets of dependencies, making it easy to switch between them. This approach enables you to quickly test your code with both the current and the newer version of what you are upgrading, ensuring that everything works smoothly before fully committing to the upgrade.

Learn more about dual-booting Ruby, installing dependencies, and key considerations for your setup.

https://www.bigbinary.com/blog/ruby-upgrade-using-dual-boot


Career Advice - Rails Career Advice - Rails

Hey everyone. I have about 8 years of experience, 4 of which are directly in Rails. I started out doing mostly front-end work, now "rounding out" in the full stack.

In the US, what do you think is necessary to get hired as a Rails dev making $160K+ per year?

My next moves are to work on learning more about Docker and deploying my own "utility" apps (stuff I will find helpful) to my own VPS and hopefully use those as proof that I:

  1. Am organized

  2. Understand automation (GitHub actions > VPS in this case)

  3. Docker

  4. Rails in general

  5. Front-end (not a designer but it won't ugly)

  6. Persisting data

When I'm done with that, I'd like to have a go at contributing to open source projects.

What else would an employer look for to be willing to hire at that salary range?



Looking for a job As A Ruby on Rails Developer | Hotwire, Turbo Native Looking for a job As A Ruby on Rails Developer | Hotwire, Turbo Native

Hey everyone I love this ruby on rails community and have seen a lot of support for devs on here trying to find work so I wanted to let everyone know about me and my skills and hopefully will find someone who would like to hire me for a project

I am an expert software developer and am able to build any app or feature that you want to create. My skills are Frontend/Backend, web development, mobile development. I am able to create and host websites, and release mobile apps for your web apps also. I have a Youtube channel I have been making coding tutorials so you can see some of my work https://www.youtube.com/@indigotechtutorials

Some of my biggest achievements are contributing to open source libraries including Turbo-Rails, Turbo-Native and the Rails core library

I'm looking for someone with an existing App or an idea they are trying to build so I can immediately start helping them.

Tech Skills: Ruby on Rails, Javascript, HTML/CSS, SQL Databases, Web hosting, Mobile apps IOS/Android

Also checkout my Github if interested in seeing my coding progress: https://github.com/indigotechtutorials

If you would like to work together please send me a message or connect on discord I have a channel: https://discord.gg/JgAw2ADC

Thanks all!




How to Install Ruby on Rails? How to Install Ruby on Rails?

Hello everyone, I've noticed how difficult it is to actually find a Ruby on Rails install guide that covers the entire process from start to finish. GoRails does a decent job, but I feel they miss a step or two here and there and do things that don't make the most sense. Other guides seem to lack fullness, only covering a portion of the setup.

So I went through the trouble of walking through every part of the setup to try and get the most comprehensive start-to-finish process as I could.

Would love feedback or thoughts on this guide.

https://pagertree.com/blog/getting-started-with-ruby-on-rails-in-2024-the-complete-development-environment-guide



Help with Nested Turbo Frames Help with Nested Turbo Frames
Help

My first rails 7 project and I want to learn how to learn how to make things asynchronous, I found out turbo and started watching tutorials on it. Then I tried CRUD with only one page but I can' seem to make the Update part work. Technically.

My problem is when using turbo_stream.replace() / .update() it removes the element instead of replacing it. I already searched the id in Chrome devtool and its actually gone. So I thought the problem is the turbo didn't knew where to put it? So I switched to .remove and .append and well it works. but the order of the quest/task are changing every time I update it. Can I get some help on how to use .replace() and .update() or any idea how to preserve the order.

So I have here a snippets of relevant code.

index.html.erb:

<%= turbo_frame_tag "quests" do %>
  <% u/quests.each do |quest| %>
    <%= render quest %>
  <% end %>
<% end %>

This will render _quest.html.erb

_quest.html.erb:

<li id="<%= dom_id(quest) %>" 
    data-controller="quest editable"
    data-type="quest"
    data-quest-id="<%= quest.id %>">

  <span data-editable-target="text">
    <%= link_to quest.title, "#", data: { action: "click->quest#toggleTasks" } %>
  </span>
  <%= link_to 'Edit', '#', data: { action: 'click->editable#edit' }, class: "edit-link" %>
  <%= link_to 'Delete', quest_path(quest), data: { turbo_method: :delete, controller: "delete", action: "click->delete#confirm" }, class: "delete-link" %>

  <div class="tasks" id="tasks_<%= quest.id %>" style="display: none;">
    <%= turbo_frame_tag dom_id(quest, :tasks) do %>
      <%= render quest.tasks %>
    <% end %>
    
    <%= turbo_frame_tag "new_task_form_#{quest.id}" do %>
      <%= render 'tasks/form', quest: quest, task: Task.new %>
    <% end %>
  </div>
</li>

Will render the list of quests then if click it will display the rendered _task.html.erb

quests_controller.rb

  def update
    @quest = Quest.find(params[:id])
    if @quest.update(quest_params)
      respond_to do |format|
        format.turbo_stream do
          render turbo_stream: [
            turbo_stream.remove(quest_id(@quest)),
            turbo_stream.append('quests', partial: 'quests/quest', locals: { quest: @quest })
          ]
        end
        format.html { redirect_to quest_path(@quest) }
      end
    end
  end

_task.html.erb

<div  id="<%= dom_id(task) %>" 
      data-controller="editable" 
      data-type="task"
      data-task-id="<%= task.id %>" 
      data-quest-id="<%= task.quest_id %>" 
      class="<%= 'completed-task' if task.status %>">
  <p>
    "<%= dom_id(task) %>"
    <span data-editable-target="text">
      <%= link_to task.task, toggle_status_quest_task_path(task.quest, task), data: { turbo_method: :patch }, class: "task-link"%>
    </span>
    <%= link_to 'Edit', '#', data: { action: 'click->editable#edit' }, class: "edit-link" %>
    <%= link_to 'Delete', quest_task_path(task.quest, task), data: { turbo_method: :delete, controller: "delete", action: "click->delete#confirm" }, class: "delete-link" %>
  </p>
</div>

This is basically _quest.html.erb its just its tied to task.quest_id / quest.id

tasks_controller.rb

def update
    @quest = Quest.find(params[:quest_id])
    @task = @quest.tasks.find(params[:id])
    if @task.update(task_params)
      respond_to do |format|
        format.turbo_stream do
          render turbo_stream: [
            turbo_stream.remove(task_dom_id(@task)),
            turbo_stream.append("tasks_quest_#{@quest.id}", partial: 'tasks/task', locals: { task: @task, quest: @quest })
          ]
        end
        format.html { redirect_to quest_path(@quest) }
      end
  end

Same thing with quest_controller.rb it but this time it should render under the quest where it belongs.



First time using Ruby on Rails First time using Ruby on Rails

I started this software engineering class and our first assignment is to create a basic CRUD application. I have no prior knowledge in ruby or rails and this is my first time using it ever. Can someone please quickly explain what the general format of the application is? Im talking about the folders including the classes, spec tests, cucumber tests etc. I’m not exactly sure what each folder/file should contain


Lack motivation to work Lack motivation to work
Help

hi! I am a Senior Software Engineer currently living in Berlin. I have over 10 years of experience, having worked at two large companies before joining my current startup. Most of my experience is in Ruby on Rails.

From the beginning, I’ve never really tried reading books, attending events, or taking courses. In hindsight, I think that was a mistake. I’ve always learned from the experiences provided by my workplace. Recently, my manager gave me feedback that, as a senior engineer, I should be suggesting new engineering ideas or contributing more to system design. While I do my best to provide strong support and deliver projects, I sometimes feel like a “code monkey” in my organization.

I also struggle with an inferiority complex and a short attention span, which has led to a lack of interest in my work. On top of that, I often hear comments that Ruby on Rails is becoming outdated, which adds to my demotivation. I wonder if it’s a skill that will sustain my long-term career.

In my free time, I’ve built several small apps, but I tend to lose interest over time. I’ve been considering starting my own business for a while now, but I lack the knowledge and guidance to take that step.

To summarize, here are my concerns:

How can I avoid being just a “code monkey” and contribute more to system design, as my manager suggested? Given my mental challenges, how can I successfully build my own business? Is Ruby on Rails a problem for my long-term career growth?