👋

jqueryの実装の考え方

2024/05/29に公開

普通に作成した場合、例えばcreateに成功した場合、失敗した場合はif文で囲うと思います。
例はrubyで記載しています。

def create
  if @変数
 redirect_to ???_path ,notice: '更新に成功しました。'
    else
       render :???
    end
  end

このような形が基本形だと思います。

しかし、jqueryで実装した場合、そもそも非同期で実装しているので、失敗した場合は、画面が動きません。
そのため、失敗した場合の分岐は必要ありません。(そもそも、失敗している時点で修正が必要です)

上記を踏まえた上で実装する場合、

def create
    @chat = current_user.chats.new(chat_params)
    @chat.created_at = Time.current
    @chat.save
end

これだけで良いです。失敗した分岐はコントローラーに書く必要がありません。

ただし、非同期通信を使用する場合でも、モデルのバリデーションエラーなどは適切に処理する必要があります。
(例えば、文字数制限、空欄投稿防止など)
バリデーションエラーが発生した場合、エラーメッセージをで非同期のコードに含めるなどの方法で、
ユーザー側でエラーを理解することができます。

ここの理解が曖昧であったため、記載しました。
jqueryは理解するまで難しい、と思う方もいるかと思いますが、PCに負担をかけずに実装できる方法でもあるため、実装するのであればおすすめです。

Discussion