0

私はいつものように私のアプリでの提案を作成しています:新しいオブジェクトの作成にどのように負荷がかかるのですか?

class SuggestionsController < ApplicationController 
    def create 
    @suggestion = current_user.suggestions.new(params[:suggestion]) 

    if @suggestion.save 
     render :show, status: :created 
    else 
     render :error, status: :unprocessable_entity 
    end 
    end 
end 

各提案は(service_idparams[:suggestion]でcreateアクションに送信されます)のサービスに属します。

提案をクライアントに返すと、提案のサービスの詳細がJSONに含まれます。これは、データベース要求を保存するためにどこかにロードする必要があることを意味します。

私は提案を見つけた場合、これは大丈夫だと思う:

Suggestion.includes(:service).find(params[:id]) 

私は節約に似た何かを行うことができますか?あなたはあなたが保存上の熱心ロードすることはできませんあなたの提案モデルでは、デフォルトのスコープの一部として

scope :includes(:service) 

答えて

0

。クエリの場合のみ。ただし、保存して@suggestionをビューに戻すと、@ suggestion.serviceにアクセスするとデータベースがヒットし、適切なデータが返されます。

+0

可能であれば、一度オフラインで行う方法が欲しいです。 –

0

これを行うことができます

@suggestion = current_user.suggestions.new(params[:suggestion]) 
# This doesn't work. 
@suggestion.includes(:service).save 
関連する問題