のユーザーを見つけることができませんでした。ユーザーが何人の担当者と重量に達したかなど、動きの最大反復回数(RM)を保存できるアプリケーションを作成しました。私はRMを作成しようとすると、それは次のエラーを与える:最大担当者が保存されていません。 'id' =
ActiveRecord::RecordNotFound in RmsController#create Couldn't find User with 'id'=
は、これは私のRMコントローラです:
class RmsController < ApplicationController
before_action :logged_in_user, only: [:create, :destroy]
before_action :load_user, only: [:create]
def new
@rm = Rm.new
@rm.user_id
end
def create
@rm = current_user.rms.build(rms_params)
if @rm.save
flash[:success] = "Max rep created"
redirect_to rms_path
else
render 'static_pages/home'
end
end
def index
@rms = Rm.where(user_id: params[:user_id])
end
def destroy
@rm = Rm.find(params[:id])
@rm.destroy
flash[:success] = "Max rep deleted"
redirect_to rms_path
end
private
def rms_params
params.require(:rm).permit(:user_id, :content, :quantity, :max)
end
def load_user
@user = User.find(params[:user_id])
end
end
、RMの新しいビューhtml.erb:
<aside class="col-md-8">
<div class="rm_form">
<%= form_for(@rm) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.select :content, ['Back squat', 'Front squat', 'Deadlift',
'Sumo Deadlift', 'Sumo Deadlift High Pull',
'Power Snatch', 'Power Clean',
'Squat Clean', 'Muscle Snatch',
'Clean & Jerk', 'Thruster', 'Push Jerk',
'Split Jerk', 'Press',
'Push press', 'Cluster', 'Overhead Squat']%>
<%= f.label :max, "Max reps" %>
<%= f.text_field :max, class: 'form-control' %>
<%= f.label :quantity, "Weight lifted" %>
<%= f.text_field :quantity, class: 'form-control' %>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit "Create", class: "btn btn-primary" %>
<% end %>
</aside>
</div>
RMのインデックスビューhtml.erb:
<% @rms.each do |rm| %>
<li>
<%= p rm.content, rm.quantity, rm.max %>
</li>
<% end %>
</ul>
<div class="center">
<%= link_to "Create new max rep", new_rm_path(@rm), class: "btn btn-primary" %>
現在のユーザーがsessionshelperで定義されています
module SessionsHelper
def current_user?(user)
user == current_user
end
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
user = User.find_by(id: user_id)
if user && user.authenticated?(:remember, cookies[:remember_token])
log_in user
@current_user = user
end
end
end
はroutes.rbを:
Rails.application.routes.draw do
root 'static_pages#home'
get '/signup', to: 'users#new'
get '/contact', to: 'static_pages#contact'
get '/about', to: 'static_pages#about'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
resources :users
resources :rms
resources :trainings do
resources :bookings
end
end
私は今、なぜそれが私にこのエラーを与え、どのように私はそれを修正することができているしたいと思います。ありがとう
'current_user'はどのように定義されていますか?コードを見せてくれますか? – Gerry
投稿を更新しました!セッションヘルパー – Cesar