Ruby format.json add text to model column -


i add text model when json object returned. example

format.json { render :json => @user.to_json, :status => 200 } 

the @user model contains field called website. user websites in format www.mysite.com, want resulting json display http://www.mymysite.com.

for example, there thousands of users.

@users = user.all   format.json { render :json => @users.to_json, :status => 200 }   

i don't want go through users , update website column 1 one. there way define in model returned value of website http:// + self.website?

the more research looks override method def as_json(options = {}), i'm not sure how modify website field.

you can have method following in user model class (app/model/user.rb):

def website_with_protocol   "http://#{self.website}" end 

then, able do: @user.website_with_protocol user's website http:// in beginning.

or, if don't mind, can override website column in database defining website method in model class this:

def website   "http://#{self.read_attribute(:website)}" end 

so, if call: @user.website, give this: http://www.mymysite.com website overridden in model class.

p.s. use read_attribute method read website value in database.


Comments

Popular posts from this blog

c# - Binding a comma separated list to a List<int> in asp.net web api -

Delphi 7 and decode UTF-8 base64 -

html - Is there any way to exclude a single element from the style? (Bootstrap) -