6

id(child id)によるjson出力順序が欲しい

この問題を解決できますか?

これは私のプロジェクトのコードです

show.json.rabl(私はRablを使用しました)

object @book
attributes :id , :name 

child :questions do
  attributes :id , :name
end

books_controller.rb

def show
    @book = Book.find(params[:id])
end

私の英語でごめんなさい、ありがとう。

4

3 に答える 3

4

アプリと何を達成したいかによって異なりますがdefault_scopeQuestionモデルで次のように定義できます。

class Question < ActiveRecord::Base
  default_scope order('id ASC')
end

default_scopeまたは、Bookモデルでを定義することもできます。

class Book < ActiveRecord::Base
  default_scope joins(:questions).order('questions.id ASC')
end

熱心にロードしたい場合は、の代わりにをquestions使用してください。includesjoin

于 2012-03-07T08:29:11.027 に答える
1

RABLはわかりませんが、シンボルの代わりにコレクションを渡すことができると思います。あなた:questionがクラスのhas_many関係者であるとすると、Bookそのためにファインダーを使用することができます。

child @book.questions.order('id ASC') do
  attributes :id , :name
end
于 2012-03-04T12:12:10.120 に答える
0

モデルで順序付けを行い、Rablを使用して順序付け方法を照会します

質問モデル

class Question < ActiveRecord::Base
  # ...
  scope :by_id, order('id ASC')
  # ...
end

そしてBookにメソッドがあります

class Book < ActiveRecord::Base
  # ...
  has_many :questions
  # ...
  def ordered_questions
    questions.by_id
  end
  # ...
end

最後に、あなたのRablは

object @book
child :ordered_questions do
  attributes :id, :name
end

https://github.com/nesquena/rabl/issues/387

于 2014-06-27T16:35:58.880 に答える