Thursday, February 23, 2017

Using Record_Select with Active_Scaffold

1. Install Paginator

C:\prj4rails\rnd>gem install paginator
Fetching: paginator-1.2.0.gem (100%)
Successfully installed paginator-1.2.0
Parsing documentation for paginator-1.2.0
Installing ri documentation for paginator-1.2.0
Done installing documentation for paginator after 2 seconds
1 gem installed

  1. Download from GitHub and unzip into vendor/plugins. (Rails 5 : Add Gem "record_select" in gem file)
  2. Enable and configure it on a controller.
  3. class UsersController < ApplicationController
    record_select :per_page => 5, :search_on => 'username'
end 1. Optional: to use RecordSelect RESTfully, add the following to your routes.rb: map.resources :model_id, :collection => {:browse => :get}, :member => {:select => :post} 1. Now go ahead and use it somewhere.


Let's assume that you have two models, NewsArticles and Authors, and every NewsArticle belongs_to :author. 
Let's assume that your goal is to set up the scaffold for NewsArticles so that the create/update forms use RecordSelect to pick the appropriate Author. To accomplish this using the default intelligence of these two plugins, you need to do two things:
  1. Configure RecordSelect on the AuthorsController.
  2. Configure the NewsArticles scaffold with config.columns[:author].form_ui = :record_select.
  3. If you want to use both RESTfully, combine the configuration in your routes.rb: map.resources :news, :active_scaffold => true, :collection => {:browse => :get}, :member => {:select => :post}
It's important to understand that the relationship between the two models is mirrored between the two controllers. The NewsArticlesController will display a form that calls RecordSelect via /authors/browse. If you want to customize which authors are returned in the result set (e.g. change the number of authors per-page), you need to configure RecordSelect on the AuthorsController.

Advice from Sergio Cambra

1. You are reading a really old web, recordselect is not in google code anymore, 
but README in github is not updated either 

Do not change your layout, don't add record_select_includes, it doesn't exist 
anymore because current way is adding //= require record_select to asset 
Anyway, you don't have to add anything else to your application 
manifest, ActiveScaffold already includes record_select to assets through 
record_select bridge when recordselect gem is installed. 
Q2. ActionView::Template::Error (No route matches {:*action=>"browse"*,

Add record_select_routes to your resources routes:

resources :rootcauses do
concerns :active_scaffold

It will define get browse route on collection

Q3. But its shows as Root Cause:FEATURE, how can I make as FEATURE ?

It uses to_label method in your model, as ActiveScaffold, you can change to_label method in your model. Or setup recordselect to use different method or partial:

Here is some old doc, still applies:

In summary, you can use partials, and set partial name with :label option:

record_select ..., :label => 'partial name'

Or use a proc or lambda:

Sunday, February 19, 2017

Solving Slow Load Time

It turns out the delay was being caused by config.assets.debug = true inside of development.rb. Setting this to false resolves the problem.

By default, caching is only enabled in your production environment. To play around with caching locally you'll want to enable caching in your local environment by setting config.action_controller.perform_caching to true in the relevant config/environments/*.rb file:
config.action_controller.perform_caching = true
Changing the value of config.action_controller.perform_caching will only have an effect on the caching provided by the Action Controller component. For instance, it will not impact low-level caching, that we address below.
More at

Saturday, February 11, 2017

Rails Best Practice


Adding Columns
Rake Tasks
Remove column, Rename Table,Dropt Table, Change Column

About Routing

RESTFul Routes 
Custom Routes
Named Routes
How to Redirect
Root Route
Route Parameters - Part 1
Route Parameters Part 2
Route Parameters Part 3

About Rails Controllers

tweet=find(1) cluttering up show.html.erb
Notice the tweets... tweets...tweets
Keep model code such as tweet=Tweet.find(1) in controllers

Instance variables via @ allows views to see what is in the controller
How to use status.html.erb in Show method via render
Using param[:id] in find method for flexibility

xml ? json?
Basic Controller Actions
Notice for Layouts
DRY out...Use before_filter

Thursday, February 9, 2017

About Rails Views

link_to helper

See also
More RESTful Routes like

link_to "Profile", profile_path(@profile)
# => <a href="/profiles/1">Profile</a>

or the even pithier
link_to "Profile", @profile
# => <a href="/profiles/1">Profile</a>
REST stands for Representational State Transfer. (It is sometimes spelled "ReST".) It relies on a stateless, client-server, cacheable communications protocol -- and in virtually all cases, the HTTP protocol is used.
REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines.
  • In many ways, the World Wide Web itself, based on HTTP, can be viewed as a REST-based architecture.
RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operation
Index.html.erb - List
Tweet.all in Rails 5 can be written as @Tweet.each do |tweet|

Welcome to Rails.. Rails... Rails !

In 1995, I started the popular Clipper...Clipper... Clipper website (no blogs then) which was very popular and linked by virtually every Clipper-related site. When I switched to Windows via Delphi in 1997, I started the Delphi... Delphi... Delphi site. In June 2007, I discovered Ruby on Rails and no prize for guessing what I am gonna name this blog. which I started on 2nd October 2007.

As at 10th June 2010, we have 13,364 unique visitors from more than 84 countries such as Angola, Andorra, Argentina, Australia, Austria, Algeria,Barbados, Bosnia and Herzogovina, Belgium, Brazil, Bulgaria, Bangladesh, Belarus, Bolivia, Chile, Cambodia, Cape Vede, Canada, China, Colombia, Costa Rica, Croatia, Cyprus, Czech Republic, Denmark, Egypt, Estonia, Finland, France, Guadeloupe, Guatemala, Germany, Greece, Hong Kong, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Kenya, Korea, Lithuania, Latvia, Malaysia, Mexico, Macao, Netherlands, Nepal, Norway, New Zealand, Oman, Panama, Peru, Poland, Portugal,Paraguay , Philippines, Romania, Russian Federation, Saudi Arabia, Singapore, Spain, Slovakia, Slovenia, Serbia, South Korea, Slovenia, South Africa, Spain, Switzerland, Sri Lanka, Sweden, Taiwan, Thailand, Turkey, United Arab Emirates, Ukraine, USA, UK, Venezuela, Vietnam

10th June 2010, 19:42