この質問からのリレーションを使用してクエリをどこで使うかを学びました。Ruby on Rails whereネスト関係のあるクエリ
Ruby on Rails where query with relations
しかし、私はまだ右のこのネスティングケースでそれをすることはできません。 Summariesコントローラでインデックス作業を行うにはどうしたらいいですか?
モデル
User
has_many :projects, dependent: :destroy
has_many :reasons, through: :projects
has_many :summaries, through: :projects, source: :reasons
has_many :entries, through: :projects
Project
belongs_to :user
has_many :reasons
has_many :entries, through: :reasons
Reasons
belongs_to :project
has_many :entries, dependent: :destroy
has_many :summaries, dependent: :destroy
Summary
belongs_to :reason
Entry
belongs_to :reason
EntriesController
# GET /entries
def index
entries = current_user.entries
updated_at = params[:updated_at]
# Filter with updated_at for reloading from mobile app
if updated_at.present?
# THIS WORKS!!!!!!!!!!!!!
entries = entries.joins(:reason).where("reasons.updated_at > ?", Time.at(updated_at.to_i))
# Get all non deleted objects when logging in from mobile app
else
entries = entries.where(deleted: false)
end
render json: entries
end
SummariesController
# GET /summaries
def index
summaries = current_user.summaries
updated_at = params[:updated_at]
# Filter with updated_at for reloading from mobile app
if updated_at.present?
#THIS DOES NOT WORK, what can I do?????
summaries = summaries.joins(:reason).where("reasons.updated_at > ?", Time.at(updated_at.to_i))
# Get all non deleted objects when logging in from mobile app
else
summaries = summaries.where(deleted: false)
end
render json: summaries
end
@ErrorのiOS
エラーにログオン:エラードメイン= com.alamofire.error.seriリクエストに失敗しました:受け入れられないcontent-type:{code} = -1011 "リクエストが失敗しました:内部サーバーエラー(500)" UserInfo = {NSUnderlyingError = 0x1481b9030 {Error Domain = com.alamofire.error.serialization.response Code = text/htmlの」
@Error Herokuの
にログイン[1メートル[36mUserロード(2.0ms)[0メートル[1mSELECT "ユーザー"。* FROM "のユーザーのユーザー" BY ORDER ""。 "ID" ASCのLIMIT 1 0m 2016-04-30T07:48:18.909397 + 00:00 app [web.1]:4msで500の内部サーバーエラーが発生しました(ActiveRecord:2.0ms) 2016-04-30T07:48:18.910250 + 00: 00 app [web.1]:ActiveRecord :: ConfigurationError(Reasonで 'reason'という名前の関連付けが見つかりませんでした。おそらく間違って入力したのでしょうか?):
動作していないものについて具体的に説明できますか? 'summary = summaries.joins(:reason).where(" reasons.updated_at>? "、Time.at(updated_at.to_i))'には何のエラーがありますか? –
エラーログで質問を更新しました。ありがとうございます! –