0

我为 JSON 请求返回这样的模型

 def index
    @categories = Category.all
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @categories.to_json(:include => :todos) }
  end
end

现在,当我返回这个@categories 时,我想包括:todos,升序排列和属性说“位置”。有没有办法我可以做到这一点..?

像这样的东西

    render json: @categories.to_json(:include => :todos, :order=>"postion, ASC")

提前致谢

4

2 回答 2

2

您可以在 category.rb 中定义这样的关联:

has_many :ordered_todos,
             :class_name => "ToDo",
             :order      => "position ASC"

然后只写:

render json: @categories.to_json(:include => :ordered_todos)
于 2013-01-11T18:42:05.717 回答
1

user1541507 有一个很好的答案。

如果您发现不想使用 has_many 方法进行排序,并且想要添加计算属性,请考虑使用jbuilder并创建视图来显示 json。这是很好地解释它的railscast 。

于 2013-01-12T01:16:32.530 回答