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
アドバイスをもらえると助かります!!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。