の生徒を見つけることができませんでした。「学生」の「マーク」を作成しようとすると、上記のエラーが発生します。私は新しいマークを作成するときに:student_idを渡す方法を理解できません。Rails - 'id' =
ルート
Rails.application.routes.draw do
resources :students do
resources :marks
end
resources :marks
root 'students#index'
マークスコントローラ
class MarksController < ApplicationController
def create
@student = Student.find(params[:student_id])
@mark = @student.marks.create(params[:input1, :input2, :input3, :weight1, :weight2, :weight3, :mark1, :mark2, :mark3, :final_mark].permit(:input1, :input2, :input3, :weight1, :weight2, :weight3, :mark1, :mark2, :mark3, :final_mark))
@mark.save
if @mark.save
redirect_to student_path(@student)
else
render 'new'
end
end
def new
@mark = Mark.new
end
private
def set_mark
@mark = Mark.find(params[:id])
end
end
学生ビューの表示
<p id="notice"><%= notice %></p>
<p>
<strong>Student Number</strong>
<%= @student.StudentNumber %>
</p>
<p>
<strong>Project Title</strong>
<%= @student.ProjectTitle %>
</p>
<p>
<strong>Project PDF</strong>
<%= @student.ProjectTitle %>
</p>
<p>
<strong>Reader 1</strong>
<%= @student.Reader1 %>
</p>
<p>
<strong>Reader 2</strong>
<%= @student.Reader2 %>
</p>
<h3> <%= link_to 'Add Mark', new_student_mark_path(@student), class:"btn btn-warning"%> </h3>
<p>
<strong>Reader 3</strong>
<%= @student.Reader3 %>
</p>
<%= link_to 'Edit', edit_student_path(@student) %> |
<%= link_to 'Back', students_path %>
マークスフォーム
<%= form_for @mark, html: {multipart: true} do |f| %>
<% if @mark.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@mark.errors.count, "error") %> prohibited this grading from being saved:</h2>
<ul>
<% @mark.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label 'Introduction' %><br>
<%= f.text_area :input1 %>
<%= f.number_field :weight1 %>
<%= f.number_field :mark1 %>
</div>
<div class="field">
<%= f.label 'Main' %><br>
<%= f.text_area :input2 %>
<%= f.number_field :weight2 %>
<%= f.number_field :mark2 %>
</div>
<div class="field">
<%= f.label 'Conclusion' %><br>
<%= f.text_area :input3 %>
<%= f.number_field :weight3 %>
<%= f.number_field :mark3 %>
</div>
<div class="actions">
<%= f.submit class:"btn-xs btn-success"%>
</div>
<% end %>
マークモデル
class Mark < ActiveRecord::Base
belongs_to :student
end
学生モデル
class Student < ActiveRecord::Base
has_many :marks
has_attached_file :document
validates_attachment :document, :content_type => { :content_type => %w(application/pdf) }
end
これはおそらく、本当に愚かなものだが、誰もが問題を説明することができれば、私は本当に感謝されると思います。
おかげ
がどのようにアクションを作成ヒットしている:は、あなたが新しいアクションであなたのテンプレートに学生のインスタンスを渡す必要があり、この作業をするためにすることを言及するのを忘れましたか? – Pavan
<%= link_to 'Add Mark'、new_student_mark_path(@student)%> – emmet
このコードはどのビューページにありますか?そのビューコードを投稿してください。 – Pavan