Rails- 'id'= 인 학생을 찾을 수 없습니다.

개미

'학생'에 대한 '마크'를 만들려고 할 때 위의 오류가 발생합니다. 새 마크를 만들 때 : student_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

아마 정말 어리석은 일이지만 누군가가 문제를 설명 할 수 있다면 정말 감사 할 것입니다.

감사

SunnyMagadan

이 목적으로 숨겨진 필드를 사용하지 않는 것이 좋습니다. mark와 함께 student를 form_for helper에 전달해야하며 rails는 다음과 같은 적절한 URL을 생성합니다. / students / : student_id / marks이 경우 나중에 작업의 params에서 student_id를 추출 할 수 있습니다.

form_for [@student, @mark], html: {multipart: true} do |f|

중첩 된 리소스에 대한 추가 정보 :

http://guides.rubyonrails.org/routing.html#nested-resources

http://www.informit.com/articles/article.aspx?p=1671632&seqNum=7

https://gist.github.com/jhjguxin/3074080

최신 정보:

이 작업을 수행하려면 새 작업에서 학생 인스턴스를 템플릿에 전달해야합니다.

def new
  @student = Student.find(params[:student_id])
  @mark = @student.marks.build
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails 검색 양식에서 'id'= search 인 제품을 찾을 수 없습니다.

분류에서Dev

Rails 4- 'id'로 구독을 찾을 수 없습니다.

분류에서Dev

ID가 'gwt'인 플러그인을 찾을 수 없습니다.

분류에서Dev

ID가 두 개인 모델을 찾을 수 없습니다.

분류에서Dev

rspec ActiveRecord :: RecordNotFound : 'id'= 인 제안을 찾을 수 없습니다.

분류에서Dev

'id'= 인 '모델'을 찾을 수 없습니다.

분류에서Dev

Rails의 "찾을 수 없습니다. 인증 통과 (Azure)"

분류에서Dev

ActiveRecord :: RecordNotFound id = index 인 레시피를 찾을 수 없습니다.

분류에서Dev

id = 인 개체를 찾을 수 없습니다.

분류에서Dev

'id'= 인 사용자를 찾을 수 없습니다.

분류에서Dev

'id'= 3 인 GaBadge를 찾을 수 없습니다.

분류에서Dev

ruby- 'id'= 인 프로젝트를 찾을 수 없습니다.

분류에서Dev

Rails : Gemfile을 찾을 수 없습니다.

분류에서Dev

Rails : Gemfile을 찾을 수 없습니다.

분류에서Dev

ID가 'com.google.firebase.appdistribution'인 플러그인을 찾을 수 없습니다.

분류에서Dev

오류 : (9, 0) ID가 'android'인 플러그인을 찾을 수 없습니다.

분류에서Dev

ID가 'Android'인 Cordova 플러그인을 찾을 수 없습니다.

분류에서Dev

CheckBox ID를 찾을 수 없습니다.

분류에서Dev

ttyUSB [id]를 찾을 수 없습니다.

분류에서Dev

Gradle : id appengine이있는 플러그인을 찾을 수 없습니다.

분류에서Dev

ControllerTest 오류, 'id'= 인 트랜잭션을 찾을 수 없습니다.

분류에서Dev

이 오류가 발생하는 경우 'id'= 1 인 게시물을 찾을 수 없습니다.

분류에서Dev

Rails ActiveRecord가 ID 배열을 찾았지만 일부는 찾을 수 없습니다.

분류에서Dev

플러그인 ID 'org.springframework.boot'를 찾을 수 없습니다

분류에서Dev

오류 : (2, 0) 플러그인은 ID '부두'를 찾을 수 없습니다

분류에서Dev

Rails 4 사용자 지정 컨트롤러 작업 오류- "ID없이 '모델'을 찾을 수 없습니다."

분류에서Dev

ActiveRecord :: RecordNotFound : ID = 인 애플리케이션에 대해 ID = 5 인 응답을 찾을 수 없습니다.

분류에서Dev

확인할 수 없음 : CFBundlePackageType을 찾을 수 없습니다.

분류에서Dev

오류 메시지 ID : 로그인 후 그룹 ID의 이름을 찾을 수 없습니다.

Related 관련 기사

  1. 1

    Rails 검색 양식에서 'id'= search 인 제품을 찾을 수 없습니다.

  2. 2

    Rails 4- 'id'로 구독을 찾을 수 없습니다.

  3. 3

    ID가 'gwt'인 플러그인을 찾을 수 없습니다.

  4. 4

    ID가 두 개인 모델을 찾을 수 없습니다.

  5. 5

    rspec ActiveRecord :: RecordNotFound : 'id'= 인 제안을 찾을 수 없습니다.

  6. 6

    'id'= 인 '모델'을 찾을 수 없습니다.

  7. 7

    Rails의 "찾을 수 없습니다. 인증 통과 (Azure)"

  8. 8

    ActiveRecord :: RecordNotFound id = index 인 레시피를 찾을 수 없습니다.

  9. 9

    id = 인 개체를 찾을 수 없습니다.

  10. 10

    'id'= 인 사용자를 찾을 수 없습니다.

  11. 11

    'id'= 3 인 GaBadge를 찾을 수 없습니다.

  12. 12

    ruby- 'id'= 인 프로젝트를 찾을 수 없습니다.

  13. 13

    Rails : Gemfile을 찾을 수 없습니다.

  14. 14

    Rails : Gemfile을 찾을 수 없습니다.

  15. 15

    ID가 'com.google.firebase.appdistribution'인 플러그인을 찾을 수 없습니다.

  16. 16

    오류 : (9, 0) ID가 'android'인 플러그인을 찾을 수 없습니다.

  17. 17

    ID가 'Android'인 Cordova 플러그인을 찾을 수 없습니다.

  18. 18

    CheckBox ID를 찾을 수 없습니다.

  19. 19

    ttyUSB [id]를 찾을 수 없습니다.

  20. 20

    Gradle : id appengine이있는 플러그인을 찾을 수 없습니다.

  21. 21

    ControllerTest 오류, 'id'= 인 트랜잭션을 찾을 수 없습니다.

  22. 22

    이 오류가 발생하는 경우 'id'= 1 인 게시물을 찾을 수 없습니다.

  23. 23

    Rails ActiveRecord가 ID 배열을 찾았지만 일부는 찾을 수 없습니다.

  24. 24

    플러그인 ID 'org.springframework.boot'를 찾을 수 없습니다

  25. 25

    오류 : (2, 0) 플러그인은 ID '부두'를 찾을 수 없습니다

  26. 26

    Rails 4 사용자 지정 컨트롤러 작업 오류- "ID없이 '모델'을 찾을 수 없습니다."

  27. 27

    ActiveRecord :: RecordNotFound : ID = 인 애플리케이션에 대해 ID = 5 인 응답을 찾을 수 없습니다.

  28. 28

    확인할 수 없음 : CFBundlePackageType을 찾을 수 없습니다.

  29. 29

    오류 메시지 ID : 로그인 후 그룹 ID의 이름을 찾을 수 없습니다.

뜨겁다태그

보관