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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

1回答

719閲覧

Unpermitted parameter 保存ができない ストロングパラメーターの組み方

xx04

総合スコア1

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2021/09/02 04:58

Ruby on Rails でuser_idに紐つけたpublic_uidの番号(userテーブルに保存されている)をフォームからregisterテーブルに保存がしたいのですが、以下のようなエラーが出ており保存ができずにいます。

イメージ説明

registerモデルにbelongs_to:user
user モデルにhas_one :register

registerモデルのカラムはuser_idのみ

class RegistersController < ApplicationController def new @user = User.find_by(id: params[:id]) @register = Register.new end def create @register = Register.new(register_params) @register.save #redirect_to root_path #bypass_sign_in(current_user) end def register_params params.require(:register).permit(:user_id) end end
<div class="greeting"> <%= flash[:notice] %><br> こんにちわ、担当者さん<br> 完了数:<%= Register.count %><br> <%= form_with model:[@user,@register], local: true do |f| %> <div class="field"> <%= f.label :public_uid, "番号を入力してください" %><br /> <%= f.text_field :public_uid, id:"user_public_uid", autofocus: true, autocomplete: "public_uid" %> <%#= f.hidden_field :id, value: "1" %> </div> <div class="actions"> <%= f.submit "登録", class: :form__btn %> </div> <% end %> </div>
Rails.application.routes.draw do devise_for :users root to: 'registers#new' resources :users, only: [:edit, :update] resources :registers, only: [:new, :create] end

アドバイスをもらえると助かります!!

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

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

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

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

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

guest

回答1

0

public_uidを許可してないからじゃないですか。
ストロングパラメータで許可して、@registerのuser_idに代入すれば解決すると思います。

もしくはviewのpublic_uidをuser_idに変更してcontrollerに送れば、解決するかと思います。

投稿2021/09/03 13:00

J_O

総合スコア143

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問