Chris Oliver


244,330 Experience
17 Lessons Completed
268 Questions Solved


Posted in How to write System Tests in Rails Discussion

I don't think that's right. We're using fixtures in this episode in our system tests. We're signing in as fixture users and visiting project fixtures for example.

Posted in Friendly URL's question

Hey Nelson,

The name of the model helps make routing way easier, so that's why it's done that way. Here's an example of why.

You might have a /sign_up route, but if you weren't careful, "sign_up" can easily get treated as a topic, which you don't want.

To do this, you'll just write your own custom routes.

get "/sign_up"

get "/:topic/:forum/:post"
get "/:topic/:forum"
get "/:topic"

This way, sign up should get interpreted first, instead of it being treated as a topic. And the rest of the routes are catch-alls to treat everything else as if it were a topic and so on. Those routes have to be the last in your routes file in order to not override the other routes.

Have any of you guys checked out this repo?

Posted in Get Jumpstart Pro

Hey Martin!

I wish I could, but it's a lot of work to maintain and I spent like 9 months building it, so I'm not able to offer any discounts. It's already probably cheaper than what I should be charging for it, so in the future I may raise the price a bit. I just want to make it as accessible to everyone as I can, but without burning myself out working on it.

Posted in Elasticsearch server with Hatchbox timing out

Thank you for the heads up that it wasn't working! I appreciate you!

Posted in Elasticsearch server with Hatchbox timing out

Alex, you were onto something with the cluster_uuid. I found out that you can find more information by running curl http://localhost:9200/_cluster/health instead.

That pointed out "master_not_discovered_exception" so it's a configuration issue that the ES server is not seeing itself as a master in the cluster.

Looks like production mode expects multiple servers now, but we can get around that by adding discovery.type: single-node and that should fix it. I'll go update the Hatchbox configs for that.

Posted in Elasticsearch server with Hatchbox timing out

ElasticSearch is really picky about RAM I've noticed. If it doesn't have enough it can fail to start and it needs 4GB RAM to itself minimum. A 4GB of RAM server won't suffice for it, so you've got to go with 8GB if you also want to run Rails on the same server, and even then you have to keep an eye on it.

This is where a managed ElasticSearch is definitely worth the money. You have to worry about none of these details and can just use it. 👍

Posted in Elasticsearch server with Hatchbox timing out

Hey Alex,

Good catch on the cluster_uuid. That does seem strange and maybe a recent version of ElasticSearch has broken my config changes. I'll do some research and see what I find.

Getting a response from ElasticSearch fooled me into thinking that everything was running just fine but maybe it gives a Service Unavailable error if it is running but doesn't have a cluster active / connected or something. I'm not super familiar with ES and it seems to have changed a bit recently.

Posted in Best Online Resources to Learn Rails

Start with the Rails Tutorial.

Hey Alex,

Not sure it's related to this specific thing, but Jumpstart Pro uses PurgeCSS in production and staging to strip out any unused CSS to make the files as fast as possible. If you didn't have the class referenced in the locations it looks, it can strip out the class on accident when compiling.

You can tweak the whitelist for that in postcss.config.js in the repo and add your own classes to the whitelists so they don't get ignored. It also supports regex so you can use that to whitelist a set of classes too.

Posted in Shrine Dynamic s3

That'd be a good question for Janko on the Shrine GitHub. I think that should be doable, but he would know how to do that best.

I believe you would just create the S3 storage instance each time you upload, rather than once in the initializer.

s3 =
  bucket: "my-app", # required
  region: "eu-west-1", # required
  access_key_id: "abc",
  secret_access_key: "xyz",

The above you would configure with the tenant's credentials and then you can probably call the upload method directly on this. He'll know best though!

Posted in Elasticsearch server with Hatchbox timing out

If you're using Searchkick, try adding this:

Searchkick.client.transport.logger = # or Rails.logger

Found that after a quick search on the issues.

Posted in Elasticsearch server with Hatchbox timing out

Sounds like the same thing as before. Have you gotten any logging enabled to see what URL it's requesting yet?

Posted in Active Storage and Subdomains

Ah, that'll get you! Good idea about adding that. It's pretty common, either that or one of the alternatives like libvips that's supposed to be faster.

Posted in Elasticsearch server with Hatchbox timing out

Check that your code is configured to use the ENV var. Enable logging for faraday, etc to see what request its making.

Posted in Elasticsearch server with Hatchbox timing out

If you set it up with Hatchbox, then it will do all that for you.

I SSHed into your server and confirmed Hatchbox setup everything correctly.

  "name" : "living-recipe-elasticsearch",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  "tagline" : "You Know, for Search"

Sounds like your code is misconfigured. Make sure that it's loading from the ENV var.

Posted in Elasticsearch server with Hatchbox timing out

You said you logged into the ElasticSearch server and tested it, but if Rails is running on another server, you have to make sure ElasticSearch is attached available externally. You'll have to make sure it's binding to an IP and allowed through your firewall.

Posted in Hatchbox deployment questions

Nice, so just fix your active storage config and try again. 👍

Posted in Hatchbox deployment questions

Have you checked the NGINX logs to see what the error is booting your app?

logo Created with Sketch.

Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

© 2020 GoRails, LLC. All rights reserved.