LoginSignup
1
0

More than 1 year has passed since last update.

Rails DM機能その1

Last updated at Posted at 2022-05-18

開発環境

Mac
Ruby 2.6.5
Rails 6.1.3.2

モデル作成

$ rails g model room name:string  //roomモデル作成
$ rails g model entry user:references room:references  //entryモデル作成
$ rails g model message user:references room:references content:text //messageモデル作成

messagesコントローラーの作成

message_controller.rb
class MessagesController < ApplicationController
  before_action :authenticate_user!

  def create
    message = Message.new(message_params)・・1
    message.user_id = current_user.id
    if message.save・・2
      redirect_to room_path(message.room)
    else
      redirect_back(fallback_location: root_path)
    end
  end

  private

  def message_params・・3
    params.require(:message).permit(:room_id, :body)
  end
end

コードの解説

1・・インスタンスを作成しています。message_paramsというメソッドを引数で呼び出しています。
2・・「保存する」処理を行うメソッドです。
3・・paramsに:messageがあるはず。なければ例外に。そしてpermitの部分では、params[:message]から取り出していい情報は、:room_idと:bodyだけで他の情報を無視する。

参考記事

RailsでややこしいDM機能を1万字でくわしく解説してみた
RailsでDM(ダイレクトメッセージ)を送れるようにしよう

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0