Сделать псевдо-атрибут из модели рельсов также в JavaScript доступным - PullRequest
1 голос
/ 15 февраля 2012

У меня есть следующая модель рельсов:

class Customer < ActiveRecord::Base

   attr_accessible :firstname, :lastname, :email, :phonenumber, :company_id

   def name
      "#{self.lastname} #{self.firstname}"
   end

   scope :search_by_name, lambda { |q|
       (q ? where(["firstname LIKE ? or lastname LIKE ? or (firstname || ' ' || lastname) like ?", '%'+ q + '%', '%'+ q + '%','%'+ q + '%' ])  : {})
   }

end

Я получаю JSON-объект этой модели через ajax.Проблема в том, что я хочу получить доступ к атрибуту имени в моем текстовом поле автозаполнения (я не хочу объединять имя и фамилию в одном поле базы данных).

Кто-нибудь теперь, как получить доступ к атрибуту имени в JavaScriptили как отправить атрибут name в объекте json?(и какой метод лучше всего)

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Я думаю, что вы можете сделать что-то вроде format.json {render: json => @ customer.to_json (: методы =>: имя)}

1 голос
/ 15 февраля 2012

Когда ваш контроллер отображает JSON, вы можете указать, что отправлять.Переопределив отправленный по умолчанию json, вы можете указать имя.

Что-то вроде:

render :json => { :customer => { :name => @customer.name, :email => @customer.email } }

Или вы можете использовать json builder, например https://github.com/rails/jbuilder, есливы намереваетесь отправить более сложный JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...