也可以在javascript中访问rails模型中的伪属性

时间:2012-02-15 12:56:55

标签: javascript ruby-on-rails ajax ruby-on-rails-3 json

我有以下导轨型号:

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

我通过ajax检索该模型的JSON对象。 问题是我想在自动填充文本字段中访问name属性(我不想在一个数据库字段中组合firstname和lastname)。

现在有人如何在javascript中访问name属性或如何在json对象中发送name属性? (以及哪种方法最好)

2 个答案:

答案 0 :(得分:2)

我认为你可以做点什么     format.json {render:json =&gt; @ customer.to_json(:methods =&gt;:name)}

答案 1 :(得分:1)

当您的控制器渲染json时,您可以指定要发送的内容。通过覆盖发送的默认json,您可以指定名称。

有些事情:

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

如果您打算发送更复杂的json,您可以考虑使用像https://github.com/rails/jbuilder这样的json构建器。