(Part 2) Top products from r/rails

Jump to the top 20

We found 22 product mentions on r/rails. We ranked the 49 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Top comments that mention products on r/rails:

u/tabolario · 2 pointsr/rails

Hi and sorry for the late reply! The first thing I'll have to ask is what environment are you deploying into, a manually configured virtual machine/bare-metal machine, Heroku, Ninefold? Each of these environments have different (sometimes vastly different) considerations when it comes to deployment of any application. In general though, here's some things that will apply that will apply to any good deployment process (some of what's below echoes /u/codekitten's reply):

  • Remove ALL credentials from your codebase: I can't stress this enough, and even for a simple project it's a good habit to get into early on. It's been enough of an issue that there are even dedicated tools to help people remove hard-coded credentials from their codebases. A good resource to explain both this, as well as the general concept of storing environment-specific configuration data outside of your codebase is this section of the Twelve-Factor App website. Personally, aside from things like tokens that Rails uses internally like Rails.application.config.secret_key_base, I will always use environment variables coupled with something like dotenv or direnv to also manage the configuration for my local development environment.
  • SSL and HSTS: IMHO there is no (good) excuse nowadays to serve a web application over HTTP. Once again, even for simple projects it's a good habit to get into and a good thing to learn. If you're hosting your application on Heroku, all Heroku application subdomains (i.e. rxsharp.herokuapp.com) will respond to HTTPS, but it's up to you to ensure your user's will always use SSL. Rails has the force_ssl setting to do this automatically for you, which you should have turned on in all of your production and production-like environments, but you should also be using HSTS to ensure that your users always visit your site over SSL (force_ssl performs a permanent redirect to https://rxsharp.herokuapp.com but does not set the HSTS headers). The gem that I use most often to take care of setting these headers for me is secureheaders, which also helps you configure a number of other security headers like Content Security Policy headers.
  • Continuous Integration: Let me expand a bit on /u/codekitten's item for passing tests to say that you should have a system in place that will automatically run all of your tests each time you push to your repository and holds you accountable when things break. Continuous integration is a huge topic that I won't dig too much into here, so I'll just point you two two indispensable books on the subject: Continuous Integration: Improving Software Quality and Reducing Risk, and Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Conceptually, you will learn almost everything you need to get started and thensome on the topic from those two books. Once you get your CI configuration in place, you will get in the wonderful habit of always making sure your build passes locally before you push to your repository. A good CI script will:
    • Run static analysis tools like RuboCop and Brakeman
    • Run all of tests
    • Notify you when a build fails and when it gets fixed
  • Automate Everything: One of the most important things to learn about deployment early on is automation. Apart from initiating the deploy (and arguably even initiating the deploy itself), everything about your deployments should be automated to the fullest extent. There are several tools in the Rails world that most people use to accomplish this, most notably Capistrano and Mina. If you are using a platform-as-a-service like Heroku or Ninefold, see the documentation for one of those on how to automate various aspects of your deployment process.
  • Deployment Smoke Testing: In my experience working in the Rails world, it seems that not a lot of people automate their post-deployment verification, even though it's very easy to do! It can be as simple as having a post-deployment hook that uses curl to hit a status page on your site that returns the currently deployed revision, and rollback the deploy if it receives an error. It can also be as complex as running a suite of RSpec examples that utilize something like Serverspec to assert the state of each one of your application servers (obviously this one doesn't work as easily in environments like Heroku). In the end, the important things here is that you automate EVERYTHING when it comes to your deployments.
  • Database Migrations: First of all, don't forget to run them! If you're using something like Capistrano to script your deployments, the command to run a deployment that includes a database migration is cap production deploy:migrations, not cap production deploy. On Heroku, you need to run them manually after you deploy using something like heroku run rake db:migrate. One further topic here that I highly recommend you explore is that of zero-downtime migrations. A great introductory article on these is Rails Migrations with Zero Downtime over at Codeship.

    These things are all general items that belong near the top of any checklist for deployment (Rails or otherwise). Hope this helps!
u/NilsLandt · 14 pointsr/rails

Smaller business logic frameworks would be mutations and ActiveInteraction.

They would replace the operations (and parts of reform) of TB.
Personally, I wouldn't use either of them over TB, they still add complexity, but don't offer too much over self-written stuff. YMMV of course.

If you want to start simple: create POROs for your "operations" with 2 public methods - initialize and run (or call, execute, apply, process etc.). Put your logic in them, create / execute them in your controllers.
Call them services, workflows, procedures, operations, scenarios, whatever.
try to put no persistent state in them - let them do their thing, return some sort of result (true / false, model / nil, small result object).

This fulfills a number of your criteria: it shouldn't slow you down much at all, it's simple, fairly maintainable and easily unit testable.

If you would like to research a different approach, look into DDD. The Arkency book should make for a good start, with the original DDD book giving quite a bit more background information.

> I'm not coding SPAs, so I still need awesome logic for Views / Presenters.

If you liked the Cells from TB, you can use them without using the rest of TB.
If you want something simpler, use a decorator like draper with ERB or Slim.

u/thibaut_barrere · 6 pointsr/rails

It's hard to provide a full answer just based on available information, but roughly you have many different ways to achieve what you have in mind.

Some families of ways to handle this:

  • ETL (Extract Transform Load) -> extract from CSV, during the process transform / clean / remap any field, if you don't do incremental reload you could also dedupe in the transform step, then load a "clean dataset" into either Postgres, ElasticSearch, etc
  • ELT (Extract Load Transform) -> extract from CSV, dump right into ES or PG (mostly unchanged), then modify there (or query a "temporary dataset" to do a sort of ETL, clean / filter etc, and pour the data into a more "final" destination in the same datastore

    What's the most adequate way to do this depends on various factors:

  • Do you want to deduplicate inside a single CSV (which can be achieved in memory before loading), or cross-CSVs (in which case you need a business key, with unique constraint, and do "upserts", or at least verify if you must drop the rows by checking id presence before)
  • Do you have many different CSV formats or are them quite different? (if they are quite different, it's often more easy to go ETL, to have a very flexible & well tested way to verify the mappings & conversions etc)
  • Are the outputs mostly largely similar with a bit of different fields, or mostly completely different?

    Finally, here are some tools which can help:

  • My own gem https://www.kiba-etl.org (which I use both for ETL & ELT scenarios)
  • Ruby Sequel https://github.com/jeremyevans/sequel (which is actually used by my upcoming Kiba Pro offer for database related tasks)
  • pgloader https://github.com/dimitri/pgloader
  • embulk http://www.embulk.org/docs/

    If you are into this for the long term, it can be worth reading a book that I often mention, which is the ETL book by Ralph Kimball. While quite old, it provides interesting patterns.

    Happy to detail this more if you provide more input!
u/yarhouse · 2 pointsr/rails

My primary books were Beginning Ruby: From Novice to Professional and Beginning Rails 3. Not to say these are the best and only books you'll ever need, but they are what I wanted in a text book; thorough, step by step application build in each one, online updates, code examples available for download. Really a great resource to get me started and I felt confident in my abilities by the end. At the very least I could understand what was happening in a system and be knowledgeable enough to know how to ask for help from other developers.
Because I had strength in HTML, I dabbled in a php book (PHP Objects, Patterns, and Practice ) as well that helped me understand some other core programming concepts.

u/purephase · 3 pointsr/rails

I don't think you need it explained from a Rails point of view. Ruby is an OO language, and Rails simply exploits that.

You need to learn proper design patterns in Ruby (which apply to most OO languages). Sandi Metz's Practical Object-Oriented Design in Ruby is pretty much the gold standard for Ruby and very readable.

It's based heavily off of Martin's Agile Software Development, Principles, Patterns, and Practices.

After that, you can look into SOLID but, in Ruby-land, I think the single responsibility principal coupled with the rules laid out in Metz's book (summarized here) is a good place to start.

Also, it's worth noting that if you have good test coverage it makes re-factoring much, much easier.

Good luck!

u/LegionSB · 2 pointsr/rails

The best thing for you are old books from that time. And they're cheap.

You're just looking for books that are in the Rails 2.x range, as it'll be hard to be specific to 2.1, but Rails release notes will help you bridge the gap between specific point releases.

The third edition of Agile Web Development With Rails and the first edition of The Rails Way are both Rails 2.x books.

Here's also an old online Rails 2.1 tutorial to help you in the meantime, but don't try to just get by on the few old web tutorials that are still online. Order books today. They're much deeper and broader than a web tutorial and they'll be invaluable if you're going to be working on this project for any real period of time.

EDIT: Michael Hartl's fantastic railstutorial.org has the "pre-1st edition" version of his book, which covers Rails 2.3, still available for free PDF download. Definitely grab that.

u/materialdesigner · 2 pointsr/rails

Honestly, not really. I've got copies of both The Cucumber Book and The Rspec Book and both are alright, but both are more than likely pretty much out of date. If you're looking for syntax, I'd just suggest reading the documentation for the relevant libraries.

I've heard okay/good things about Rails Test Prescriptions but haven't personally read it.

I have a few blog posts that I enjoy:

u/personal_opinions · 1 pointr/rails

+1 for devops. Anyone looking for a reference manual for Linux should check out Mark Sobell's books. Really useful and doesn't become obsolete after a year (or even 10 years!). Just got his 3rd edition Linux manual for Christmas and I'm ecstatic.

u/RecoverPasswordBot · 1 pointr/rails

Thanks for the advice. I don't really think Google is in my reach as a non-CS degree student, and I feel like I'd enjoy working in a startup/smaller company environment regardless. I'm thinking about going through Sedgewick's Algorithms 4th ed. book. It gives a high-level overview but also provides Java code as examples of implementation. I'll then try to adapt said Java into Ruby and tackle the exercise problems in Ruby as well. Does that sound like a solid plan to you?

u/miah_ · 2 pointsr/rails

You do not need to run nginx. Yes you can run haproxy -> unicorn directly.

Split your static content up and have it served by a pool of nginx servers. Then push all your app requests directly your your nginx servers.

The problem with haproxy -> nginx -> unicorn is queues.

Imagine you have a single load balancer that is managing incoming traffic to a pool (3 nodes) of nginx+unicorn. When a user session ends up in the connection queue of a nginx server not much can be done. That user session is going to sit there until the unicorn server behind it can process it.

Now, imagine that you had a single haproxy, sending {.gif,.jpg,.css} to your nginx pool. Also imagine that you have a api like '/api'. Now you can configure haproxy to do URI based routing and send traffic to a system that will process it fast. If a session sits on a unicorn server too long, it can be sent to a different server by haproxy (of course, it depends on your application supporting such actions).

John Allspaw wrote about this in The Art of Capacity Planning

u/Hazz3r · 2 pointsr/rails

My company uses RSpec. I was introduced using Chelimsky's The RSpec Book. It touches not only on RSpec but Cucumber and Behaviour Driven Development. It's a solid technical document and would probably serve you well!

u/[deleted] · 5 pointsr/rails

skip the pickaxe. read this instead.

peepcode.

u/chadcf · 3 pointsr/rails

I'm disappointed he went there as he is a really knowledgable guy that many developers could learn a lot from (even if they don't agree with everything he advocates). Specifically I think Clean Code should be a pretty essential part of any developers library.

u/cmd-t · 3 pointsr/rails

What about Service-Oriented Design with Ruby and Rails?

Also, a lot of people think that they really need 'large-scale' or 'enterpricy' rails apps before ever running into scaling problems. If you don't need to handle thousands of requests per second right now then just build your app like you normally would and worry about scaling problems when they really start to appear.