best ruby on rails cms [closed] - ruby-on-rails

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
i need to choose a cms for my next project, i have searched and come up with these 2 : radiant and refinery, which one is better for building middle size websites ?
are there any other options out there for rails cms ?
one important factor is that client can easily update their website without much knowledge
thnx for helping

I'm one of the developers of Refinery CMS and I would recommend it for the use you've described.
Refinery has been built over a period of 4 years where we have shown it to regular people and let them update their site without our help. We purposely leave out technical details from the UI so it is extremely straight forward for a non-technical client to use.
Which is who a CMS is supposed to be for, right?!
If you have a smaller site you need to build in the future, there is also a hosted version of Refinery called Refinery HQ which allows you to quickly and cheaply give your client an editable site using all the same tools the open source project offers.

I find that the field is still very fragmented. I've looked at Radiant, adva-cms, BrowserCMS, and Refinery over the last year. My simple take is this:
Radiant is the most mature, but takes over the whole application stack with its proprietary flavor. Adding your own application to it is not just like writing a Rails app, but you have to learn the Radiant extension way to do it. Rake tasks, test suites, migrations are all non-standard. This limits flexibility, and comes with much higher staff training requirements.
adva-cms is built as a Rails engine (ships as gem), and doesn't take over the application stack, so you can develop Rails applications as before and adva-cms coexists peacefully. It has nice support for interationalization and multi-site support. It's promising, and they just released adva-cms2, a complete rewrite targeting Rails 3. It's promising and yet very young.
BrowserCMS, like adva-cms, is a Rails engine and struck me as a tad more mature, when I first looked at it 9 months ago, but development appears to have slowed down. I chose it for a project earlier this year, but we're wondering what on-going developer activity will be like. As of this writing there is no Rails 3-compatible release yet.
RefineryCMS seems to have a lot of activity and commercial backing, but unlike the other 3 still has no test suite. A 4-year old project in Rails without test suite is too great of a risk. When it'll hit that exponential curve of increasing cost of change due to lacking regression is debatable, but whether it'll come is not. I'm also weary of developers in this day and age working in Rails who still don't understand TDD. Your mileage may vary.
All told, there is no one brain-dead simple option yet that fills most needs. Choose based on your needs.
Update 9/2011: We've recently been using the rails_admin gem which works wonderfully well, isn't very intrusive and allows for lots of customization. It's probably the new Rails 3 and after standard. There's also active_admin that follows a similar concept we've used on another project.

I really like RefineryCMS as it is flexible to use, does not deviate from Rails way of things, and is very extensible. Converting an existing Rails app to a Refinery app is a breeze. They do have a cucumber test suite with 46 odd scenarios, and you will have to decide its effectiveness.
On the other hand, Radiant is also very good, but it has a bigger learning curve as it is very extensive and proprietary in nature. Although the extension base for Radiant is huge, for adding new functionality, one has to rely on an existing extension or build one. It is hard to take an existing Rails app and convert it to a Radiant app.

Having contributed patches to Radiant in the past, and having used Refinery (though only briefly), I would lean towards Radiant. The plethora of extensions make it very easy to extend, and one of the planned features for 2.0 (as discussed on #RadiantCMS on Freenode) is to make the extensions a bit more Rails-friendly (Think Rails 3 Engines), so the problem of porting existing apps to extensions easily should be resolved after Rails 3 support is finalized. The current plan is to begin hacking on Rails 3 support in earnest after the 1.0 release.
Radiant 1.0.0.RC4 is currently very easy to install and use. There are great instructions for getting it setup and deployed on the GitHub Wiki, and the first full release of Radiant 1.0 should be any day now, so this is the perfect time to start using it or get involved with its development.
In my opinion, there is no finer CMS for small-medium sized teams (even with large teams, it can be made to scale fairly well, though I find this requires a tiny bit more work than the average user will be willing to put in).
EDIT: Also, Radiant 1.0 RC4 will run fine on Ruby versions 1.8.7 - 1.9.3. Just so you can make sure it fits in with your existing Ruby setup.

Related

Are Rails Brick or Rails Composer widely used?

I'm new to Ruby on Rails and have been seeing people use auto boilerplate generators like Rails Brick or Rails Composer to create boilerplate user-management systems, etc. Coming from a background that doesn't trust auto-generated code, is it good/legitimate practice in Rails to use such systems. Also, I'm working on a project with a startup. Is it fine to use such generators and how widespread a habit is this.
P.S. Mods please note that this is not a question asking comparisons/opinions/disputes. I'm curious about the general practice in Rails and how often is this used in production.
I'm the maintainer of Rails Composer so I believe I can answer this question with authority.
I respect (and share) the urge to build from scratch. That's a healthy impulse. Rails includes a facility for application templates (Rails Composer is an application template) because automation saves time and effort. For people who build many web apps, a time comes when you decide to automate the process.
Rails Composer offers an advantage over roll-your-own application templates because it is open source, used by thousands of developers with code contributions by many. As Rails and gems change, Rails Composer gets updated so you get a current "reference implementation" every time. It gives you well-tested starter apps that integrate all the bits and pieces that require tweaking, like RSpec plus Capybara and FactoryGirl, flash messages and navigation with either Bootstrap or Foundation front-end frameworks, Devise or OmniAuth for authentication, Pundit for authorization, and many utility gems that developers like to add (Guard, Pry, etc.). It lets you choose your stack (for example, ERB, Haml, or Slim), offering choices to the extent that the community has contributed options.
If you're concerned about the safety of running an install script, the code is open source and used by thousands of Rails developers (you can see over 2000 watchers on the GitHub repo). It's purely an application template using the Thor library, and though in theory someone could contribute code that tampered with your files, we'd never accept a pull request like that. Rails Composer only offers well-known popular gems, so you are not exposed to potential risk of using unknown gems.
Rails Composer is widely used, particularly by consultants who build lots of apps. Many of the prominent consulting firms have an in-house application template (Thoughbot Suspenders, for example) and some use Rails Composer or the rails_apps_composer gem that generates custom application templates. Developers who work on on only one application regularly (maintaining a big project, for example) tend to be less familiar with application templates like Rails Composer, but it is popular with developers who start a lot of apps.
Stack Overflow is not a place for opinions, so if you want a range of opinions or debate about the merits of Rails application templates, Reddit or Quora might be a better place to ask.
Welcome to Stack Overflow! I hope all your questions will be answered accurately and timely.
I'm the developer of Prelang which is similar to the generators you mentioned. It differs by adding data modeling, GitHub integration, and deeper configuration for some features. Like Daniel, I believe I too have some authority on this and agree with his very complete answer.
To answer your question, Prelang is newer but it's already used by thousands of developers ranging from beginners to dev shops.
I'd like to note that Prelang (and the other builders) are different than what you traditionally think of when you hear "code generation". When working on Prelang, my goal is to automate "everything that a Rails developer would have done anyways". Prelang does generate methods/code but mostly it's automating install processes of Gems, setting configuration values, creating models, and running rails commands. That said, Prelang is opinionated in terms of which gems it uses but I've selected the most popular gems for each feature and will give the flexibility to choose between multiple routes once I get a little more traction.
Prelang also makes real Git commits so you can look through every commit after your project generates giving you full visibility into your codebase. This is intended to further ease concerns relating to generated code.
Erik
Most gems are so easy to set up nowadays, that I think you won't need such a generator. After all it's just a question of taste – I like using the command line, and I like knowing exactly what's in my codebase. From my personal experience, I have never seen someone use such a thing in professional Rails development, but clearly there are people out there who use them.
The one case I can think of where these generators make sense is when you're bootstrapping projects very frequently. In this case however, I find the existing generators not to be flexible enough. Thoughtbot for example has built their own app generator called Suspenders, which of course includes a very opinionated set of gems etc. but it gives them exactly what they need.
As a side note regarding your security concerns: for me, the dependency trees that are spanned up when you use many gems are a far worse security threat. For example in a medium sized Rails project it is not uncommon to depend on 100+ Gems; no-one can read all of them. You'll have to trust all of those as well.

Downgrading Michael Hartl's Rails application to Rails 2 [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I built (hacked) my web app by extending Michael Hartl's Rails 3 tutorial, only to discover that my web hosting service requires Rails 2.3.8. I am a complete newbie to Ruby/Rails, and was wondering how feasible a downgrade from Rails 3.x to Rails 2.x would be.
Unfortunately my webhost is not able to upgrade to Rails 3.
Edit
To be more specific: my application is largely based on the tutorial mentioned above. I am looking to determine what type of effort is involved in downgrading the Rails 3 tutorial application into a Rails 2 application. I will try it out anyway, but due to my inexperience with Ruby / Rails, before I started I just wanted to get an idea of what to expect (i.e., if there will be a lot of syntax changes, or will I have to restructure the file directory, etc.)
You do NOT want to do this, it's a really bad idea, You'll end up chasing your tail forever with weird error messages and when yuo ask about them you'll be a very unusual case.
Either
Find a host that support Rails 3, while you get ready for Rails 4 (tee-hee)
Seek out of of the (many) books on amazon or ebay that cater to rails 2 (still probably a majority at this point).
Use Heroku - many people are using Heroku to go live for free and then be low cost when more's needed.
The main thing here about rails is that the versions advance quickly - and the code structure changes a lot with each version. You have to work much harder to avoid technical debt than with other, more mature, technologies.
Agree with the 'new host' suggestions. I haven't downgraded an app, but the upgrades I've done have taken weeks on large apps. So my answer is that it's not feasible enough for me to want to try, and I've been using Rails for years.
I've had a cheap Dreamhost account for years, and they stay up to date. I've also heard good things about bluehost. Note that both of these shared providers are "get what you pay for," but if you value your time, it's certainly worth $7 or whatever the monthly fee is to not spend your time downgrading the app.
It can be done though if that's what you really want. But it is a lot of work. I remember upgrading one very large app from rails 2 to rails 3. You will need to do this reversely. I had to solve gem compatibility(some gems only work with rails 3 and it might be harder to get support for rails 2 now), active record had a different API in the past versions, I'm not even sure if there was the chaining feature. E.g. instead of Model.where, you would often write Model.find(:conditions => {...}), if you're using generic ajax helpers(with :remote => true) that appeared in rails 3, then these would not work. Plus I would also scan the rails changelog for any security patches that were done in rails 3 just to be sure. Could be that you will have to tighten security on some places on your own in the older version. If you have your app test covered (and I hope you do :-)) than there might be some problems with older versions of rspec or cucumber but generally these were not so big. I think gem compatibility is the greatest issue. The rest is more or less mechanical work. Find and replace.
Good luck with that but as was said before, if you can switch your hosting then I advise to do so and stick to the latest version of rails.

Moving on from Merb - where can I find a home?

I moved my application off of Rails early in 2009 because I didn't need or want all of the features in that framework (ORM, MVC etc) and didn't like the large footprint we were generating (200Mb). Merb-core has been a great home for our application but I'm now wondering if we should move elsewhere now that Merb & Rails have merged.
Does anyone have advice on the following questions?
Should we stay on Merb?
Given the desire for a minimal
footprint, is there any point trying
to reimplement the app on Rails 3.x?
I have some experience with thin and
Rack but use enough Merb features
that the port wouldn't be painless -
is it worth going 'down' to bare
Rack?
Thanks, I appreciate that some of these are subjective but I hope that there are enough people who have used Merb and who have faced the same questions.
Just as an aside, the last question here about Merb was almost four months ago.
I have a couple of production apps running with Sinatra. It's light-weight and generally a pleasure to work with.
Since Rails 3.x is more modular than before, you might want to have a look at it too. You can slim it down quite far. If you're going for a really minimal footprint, Sinatra is an excellent choice.
Does Merb not meet your needs anymore? I'm still using it. I've tried Rails 3 and it doesn't feel at all like the "Merb 2" I was promised; kind of just feels like Rails. As such I continue to use Merb for new projects. I have one I deployed this past summer and a larger project for an existing website that I am currently developing. Perhaps it's not a very popular framework, but it meets most of my goals and so far I've seen no reason to leave it behind.

Should I learn Rails, Joomla or DHTML as a beginner? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
This is not a core programming problem as most posts on this website are, forgive me for that but I didn't know where else to ask this.
I am a beginner in web languages and want to build a small website for our family business, mostly a bunch of galleries that would display our different product lines with prices and some basic specs for customers to get an idea..currently I'm pursuing comp science at the undergrad level
So here is the problem, I can't decide between platforms
I started out with HTML and making a basic mock up but that didn't quite work out as i needed to have dynamic galleries that was quite hard to code by hand and since we need to update often it would be a pain even if I did manage to get it going
then I thought of Joomla as it would be easy to update but soon realized that its not that easy to customize templates
Then I started reading about Ruby on Rails and what it offers and it sounded really interesting might be useful in developing applications that we possibly would need in some time.
so I wanted to know from the community which course should one pursue: DHTML, Joomla, RoR
Please keep in mind that I want this to be a learning experience that will be useful possibly in the future in my professional career and at the same time get the job done.
I would also greatly appreciate any resources or suggestions that the community might have.
You are actually comparing apples to oranges here as DHTML, RoR, and Joomla are not the same thing. You are comparing a mark up language, to a programing framework, to a content management system. You could feasibly learn a CMS (Joomla, Drupal, Wordpress, etc) and never learn to code a single line of HTML or PHP.
For the purpose of getting a site that you can manage and edit yourself, then what you are asking is which CMS should you use. There are dozens of CMSes and opinions on which one is the best. In general are the big 3 - Wordpress, Joomla, and Drupal. Wordpress is by far the easiest to learn. It has a very simple admin that shouldn't take more than a few minutes to figure out. There are tons of themes and extensions that go along with it. The downside is that it's coded to be a blogging platform, not an extensible CMS. That means that doing things other than blogging are harder to accomplish (relative to Joomla and Drupal). It can still be done, but the more complex the site, the harder it is to do in Wordpress.
Joomla is the next step in ease of use. The admin is significantly more complex than WordPress, but a tech savvy user will get the basics down in the first couple of hours or so. Extendding Joomla is much easier for both the developer since the framework is specifically designed to be extended, and the user since installing is very quick and easy for most extensions. It's a pretty good balance between ease of use for the admin and ease of extension for the developer.
Drupal is probably the most powerful of the 3, but the trade off is in the user admin. Most non-developers will struggle to understand how the admin works or what taxonomy is and how it works. Again, the trade off is that it allows developers much more power in extending Drupal. Drupal makes it easier for the developer to accomplish much more complex tasks than Joomla or Wordpress.
At the end of the day, all 3 can accomplish the exact same thing on a website. You need to determine which one will accomplish your particular needs the best.
That said, you should still learn HTML and a programming language. My recommendation would be to learn PHP and mySQL. That will give you a solid foundation on which to build on once you are well versed. Other languages and flavors of SQL will come easier, plus many of the large open source projects are done in PHP/mySQL.
Since what you are trying to do is a pure learning exercise, I suggest you look around into a lot of things(rails/css/javascript/php etc) until you finally find the one that you will have fun playing-with. You learn faster when you can tinker with it.
Ruby on Rails may 'seem' easy to an advanced web developer. Its an advanced framework and needs considerable amount of investment in terms of time and interest and most importantly you need to have an aptitude for it. If you REALLY want to do this, and you have a general aptitude for Web programming, I suggest you start with Wordpress. Its search-engine friendly and will get you running in no time.
Learning we development and design is not a small task. It'll take you years to get even moderately good, so if you need to get something up and running now, I'd not recommend you to build it yourself.
There are a lot of nice Joomla templates and plugins available if you are ready to pay a small price for it. Search around a bit more, and you might find something that works for you.
I would start with a CMS such as Joomla or perhaps even Wordpress. Grab a template and tweak it - this will be a good introduction to coding websites as the really hard parts are already taken care of.
Once you have finished the site that you are working on then you can think about moving on to a framework such as Rails or even a PHP based once like Code Igniter. The frameworks will take a lot longer to figure out but at the end of the day they will give you a better learning experience then just tweaking a CMS template.
I would say it depends on your goal. As mentioned they have different purposes. That said I would say Joomla or Rails.
If you are interested in CMS (or design), and don't want/care about getting down and dirty into coding then I would use Joomla and learn what you need to acccomplish your goal.
If your goal is to be able to develop custom web APPLICATIONS, I would probably learn Rails. There is much more of a learning curve but you will get experience with things like html5, javascript (or coffeescript), css3 (or sass), exposure to the MVC model (model view controller) and exposure to Ruby.
But with Rails there is a lot more to learn, but you will have a lot of knowledge.
If you want to go down the rails path, maybe start with a Rails CMS (like locomotive or refinery) b/c they are written in Rails, you could look at the code or have some insight into the CMS. Disclaimer I have not used a Rails CMS (just did some research)
I would choose Joomla. They have a vast array of components and modules that should meet your needs. As far as customization, if you are a beginner this will be difficult no matter the platform. DHTML is not a platform. DHTML is mainly javascript, css and php. I suggest you get some books on doing dynamic stuff with javascript and jquery, styling with css and creating MVC sites with PHP. When you learn all this first your job customizing an whatever platform will be much much easier.

Which modern web frameworks are popular in a corporate setting? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 months ago.
Improve this question
My company is looking to move their software to an open source framework. Their first thought was J2EE. I know that Django and Rails are popular for recreational development, but not sure about them in a corporate setting.
I was looking to compile a list of possible web frameworks to consider. Unfortunately I am not able to release our requirements to the public. Also I would like to know if you have seen/used different frameworks in a corporate environment.
Thanks
I believe the more important question is what talents you got. If you have a primarily Java team, and you want to completely move to Ruby or Python, it's gonna be hard, if not impossible.
When deciding if X language/framework is good for a business, you have to consider opinions from your internal technical staff first. That normally sets you in a place with limited choices. Unless you are with a very small but highly talented/motivated team or planning to build a team with new hires.
Not sure what you mean by a corporate use, but we're using Django at a large media company for the websites of nearly 40 radio stations.
Another vote for Django. I'm not sure if the Washington Post or LA Times count as "corporate" but they have a lot more demands (both daily hits and time-to-new-feature) than your average "corporate" environment.
Struts, Stripes, Wicket, Spring MVC. I use Grails and love it.
You can go to Rails too. We use Rails successfully in a number of serious applications.
If you are just looking to save money from software, you can go to any J2EE frameworks out there. If you looking for some fun and rapid development, try Rails.
It all depends on the type of the project and the talent you have.
I use django in a real-time professional environment.
it's solid, and blazing fast (django on nginx/fastcgi, and soon couchdb too!)
We're using sinatra (ruby) for frontend to our main internal application. Simple, stable and flexible.
Struts2, Spring MVC, Stripes, Wicket, Grails, JSF, Seam, GWT, Flex, etc (Stripes and Grails being my favorite).
Matt Raible did interesting comparisons of (most of) them in this presentation which is an updated version of this old one.
Another interesting reading might be the What is the most commonly used Java web framework? question here on SO.
IMO, whatever you choose doesn't matter that much, the presentation layer will still be throw away code.
Any framework that keeps you away from the imperative languages (e.g. Java, C#, JSP with Java etc.) is better. Declarative/Functional/Data Flow languages (e.g. Ruby, XSLT, Python, etc.) result in solid implementations that save you support/enhancement $$$.
It sounds like the powers that be are comfortable with Java, but do yourself a favor and avoid J2EE. Go grab Restlet and Groovy, write a nice Rest back-end that not only serves as a programmatic API for your project, but will work nicely with any Ajax/Javascript library you choose to implement a UI in.
We are currently using Django and the web site is driving a lot of business to the company as well as growing by double digits since last year. It doesn't matter what kind of technology the corporation is using but what their business model is. What are you currently using in-house? It will make more sense to use a web framework related to your in-house code, knowledge and man power.
If nobody knows Rails or Django, you have to factor in the learning curve during the migration. It should only be a couple of weeks depending on the savviness of your developers. Then again if everyone hates or do not enjoy working with the in-house technology, trying a new one might be worth it.
"I know that Django and Rails are popular for recreational development (...)"
Rails:
http://basecamphq.com
http://highrisehq.com
Django:
http://www.lawrence.com/
http://www.everyblock.com/
They have high traffic and content-heavy services. I wouldn't call those guys business as "recreational development".

Resources