How to make content editable in Rails without using a CMS? - ruby-on-rails

I'm building a dynamic web app that each paragraph could be editable with one click. Just wondering if anyone has any recommendation's how I could go about that without using a CMS.

Give a try to ckeditor :
gem 'ckeditor', github: 'galetahub/ckeditor'

This type of implementation sounds like more of a JavaScript question. You'll need to look into the rails API and may need to disable turbolinks.
You can even use the rails generator for scaffolding to build out your models and controllers. I'd recommend nesting two models.
rails generate scaffold Article title:string author:string
rails generate scaffold Paragraph content:text article:references
At this point you will need to wire up your javascript editor to your update method in the controller.

Related

Rails modify scaffold to use simple_form gem

Is it possible to modify rails scaffold command to generate forms using simple_form gem input fields?, instead of having the developer to edit each form and convert it to use simple_form data fields?
PS: I did Google and search Stack Overflow before posting, all I found was how to modify existing scaffold, which is not what I want.
Thank you
You can override the templates used for generated views by putting templates here:
lib/templates/erb/scaffold
take a look at:
Rails 3.1 - changing default scaffold views and template

How to change existing forms layout to use simple_form layout in rails?

I currently found simple_form gem for rails application. I currently join the rails project and added this to existing project.
After installation it creates form for new migrations with simple_form. I want to migrate all existing forms to use simple_form.
How can I accomplish existing non simple_form layout forms to use simple_form layout.
Is there any way to generate forms using console or script to make simple_form layout?
Unfortunately, I don't believe there is a generator that can translate all your other forms in to the simple_form layout for you.
If the forms you have now currently work, I would say there is no need to change them. The point of the gem is to make it easier to create new forms. Use simple_form going forward and leave the ones that work. In the future if any form breaks, rewrite it in the simple_form DSL.

How to create a custom scaffold generator in Rails 3?

There are these railscasts.
http://railscasts.com/episodes/218-making-generators-in-rails-3 With this one you find out how
to create a stylesheets and scaffold generator.
http://railscasts.com/episodes/216-generators-in-rails-3 With this one you find out how to add some files to modify the scaffolding views.
I want to do a mix of the two. I would like to create a generator that also creates scaffolding views. Kinda like Ryan Bates nifty generators or web_app_theme gem (https://github.com/pilu/web-app-theme). I have been searching for a tutorial or some information to point me in the right direction but I can't find exactly what I'm looking for.
I know I'm close. I already know how to create a generator with Railcast 218 but now, how can I make it create view files too?
I would like to run a command like this...
rails g my_scaffold_generator Post title:string body:text
This may well be too late to help, but as I found this while Googling for the same info...
It seems to me that the best approach, at least for learning the ropes, is to duplicate and then alter the existing scaffold generator.
So the first thing that tripped me up is finding the default templates, which do not live in your rails-3.2.0 directory (or whatever version you are on), but in railties-3.2.0. So for my RVM-based installation they were at:
/Users/leo/.rvm/gems/ruby-1.9.3-p194#gemset/gems/railties-3.2.0/lib/rails/generators/
[Note: your gems directory could be somewhere else entirely, use $> gem environment to find your gem paths]
In here is erb/scaffold/templates/ which has the files you'd expect (new.html.erb, _form.html.erb etc).
You can copy these files to your app's root, into lib/templates/erb/scaffold/ and they will be used instead of the default ones.
If you want to use these in a custom generator, there are two approaches:
1) Use hook_for to call the regular ERB scaffold generator from your generator.
2) Move/process the templates inside your own custom generator, using copy_file and similar methods in Thor to move them into place.
There is a decent Rails Guide on this, although I found I didn't really get it until I started digging around in .../railties-3.2.0/lib/rails/generators/... and looking at how the defaults are structured.

Divs instead of Tables in Rails generator

Is it possible to customize or find a gem that changes the behaviors of auto generating Tables in the views when I use rails scaffold and change it with Divs instead? Like cleaner templates, I'm using rayan's nifty generators but it uses tables instead of divs .
Any help would be highly appreciate .
Eqbal
I don't know of any such scaffold generator, but you can build one easily by taking Ryan's nifty generators as a starting point. You can modify it to your needs by following these steps:
Fork the repository on Github and clone it.
Change the file /rails_generators/nifty_scaffold/templates/views/erb/index.html.erb to fit your needs.
Commit and push your changes.
Add the newly created Gem to your Gemfile like this:
gem "nifty-generators", :gem => "https://github.com/[your_user]/nifty-generators.git"

can i "freeze the code" of activescaffold or rails_admin in rails?

i want to generate a complex scaffold and then remove the gems
is there a way to freeze the code that rails_admin or activescaffold generates so i can edit it myself ? (similar to how rails scaffold does it)
is there another gem that generates a more complex scaffold?
In active scaffold to alter a scaffold's views you use overrides.
This depends on what version of Rails you're running. If >2.1, you can specify gems explicitly in environment.rb using config.gem, and then run rake gems:unpack to freeze those gems into the vendor/gems folder. For >=3.0 use the Builder tool to freeze the gem.
If <= 2.1, then you could do the above step manually -- copy all of the ActiveScaffold gem code into a folder in vendor/plugins, and remove the gem itself. See earlier plugin-based versions of ActiveScaffold for guidance.
You can also do this only as needed. To customize views, create an app/views/active_scaffold_overrides folder, and copy any ActiveScaffold partials to customize there. They will automatically be used across your app -- no need to duplicate them into each view. To customize controller actions, create a controller named ActiveScaffold, and then have all other scaffold controllers inherit from this new ActiveScaffoldController. Now you have somewhere to override the actions themselves, and you can override helpers in the generated ActiveScaffoldHelper file too.

Resources