質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

810閲覧

rails URLの:idをformで保存したい

mothi5656

総合スコア27

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/10/17 10:03

編集2021/10/17 14:33

URL /xx/[:id]/yyの[:id]をform_withでdbに保存する方法を教えていただきたいです。ストロングパラメータのmergeやhidden_fieldなどを使いましたが、上手く行きませんでした。

route.rb Rails.application.routes.draw do root 'top_page#index' devise_for :users resources :calendars do resources :calendar_messages, only: [:index, :create, :destroy] end # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
コード class CalendarsController < ApplicationController def index @calendars = Calendar.all end def new @calendar = Calendar.new end def show @calendar = Calendar.find(params[:id]) end def create Calendar.create(calendar_params) redirect_to calendars_path end def destroy @calendar = Calendar.find(params[:id]) @calendar.destroy redirect_to calendars_path, notice:"削除しました" end def edit @calendar = Calendar.find(params[:id]) end def update @calendar = Calendar.find(params[:id]) if @calendar.update(calendar_params) redirect_to calendars_path, notice: "編集しました" else render 'edit' end end private def calendar_params params.require(:calendar).permit(:title, :content, :start_time) end end
コード calendar > show.html.erb <%= form_with(model: @calendar, local: true) do |form| %> <div class="title"> <%= form.label :title %> <%= form.text_field :title %> </div> <div class="time"> <%= form.label :start_time %> <%= form.datetime_select :start_time %> </div> <div class="content"> <%= form.label :content %> <%= form.text_field :content %> </div> <div class="submit"> <%= form.submit %> </div> <%= link_to "チャットへ", calendar_calendar_messages_path(@calendar.id) %> <% end %>
コード class CalendarMessagesController < ApplicationController def index @messages = CalendarMessage.find_by(calendar_id: params[:id]) @message = CalendarMessage.new end def create #CalendarMessage.calendar_id = params @message = CalendarMessage.new(calendar_message_params) if @message.save redirect_to calendar_calendar_messages_path else render calendar_calendar_messages_path end end def destroy end def calendar_message_params params.require(:calendar_message).permit(:message, :calendar_id) .merge(user_id: current_user.id) end end
コード calendar_messages > index.html.erb <%= form_with(model: @calendar_message, local: true) do |form| %> <div class="message"> <%= form.text_field :message, placeholder: "メッセージを入力" %> </div> <div class="submit"> <%= form.submit "送信" %> </div> <% end %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

urlのネストを使った

投稿2021/11/05 15:07

mothi5656

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問