Мои отношения:не удается вставить данные, используя пользовательское действие по тяготеет имеет много отношений рельсам
class PrivateClass < ActiveRecord::Base
has_many :lesson_plans
end
class LessonPlan < ActiveRecord::Base
belongs_to :private_class
end
Моя форма как:
<%= form_tag (add_lesson_plan_teacher_teacher_private_school_private_class_path), remote: true do %>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<%= label_tag :title, nil, :class => "control-label" %>
<%= text_field_tag "private_class[lesson_plan][title]", "", class: "form-control first_input", required: true, style: "width: 210%;" %>
</div>
<div class="form-group">
<%= label_tag :description, nil, :class => "control-label" %>
<%= text_area_tag "private_class[lesson_plan][description]", "", placeholder: "Enter Description Here", class: "form-control", rows: "3", required: true, style: "width: 210%;" %>
</div>
<div class="form-group">
<%= label_tag :notes, nil, :class => "control-label" %>
<%= text_area_tag "private_class[lesson_plan][notes]", "", placeholder: "Enter Notes Here", class: "form-control", rows: "3", required: true, style: "width: 210%;" %>
</div>
<div class="form-group">
<%= submit_tag "Create lesson plan", :class => "btn btn-info" %>
</div>
</div>
</div>
<% end %>
Мой контроллер:
class Teacher::PrivateClassesController < ApplicationController
before_action :authenticate_user!
before_action :set_teacher
before_action :set_private_school
before_action :set_private_class
def add_lesson_plan
@lesson_plan = @private_class.lesson_plans.new(private_class_params).save
end
private
def private_class_params
params.require(:private_class).permit!
end
def set_teacher
@teacher = Teacher.friendly.find(params[:teacher_id])
end
def set_private_school
@private_school = PrivateSchool.friendly.find(params[:private_school_id])
end
def set_private_class
@private_class = PrivateClass.find(params[:id])
end
end
маршруты:
resources :private_schools do
resources :private_classes do
member do
get :lesson_plan
post :lesson_plan
post :add_lesson_plan
end
end
end
Теперь проблема заключается в том, что, когда я пытаюсь вставить данные в планах уроков таблицы он говорит:
ActiveRecord::UnknownAttributeError (unknown attribute 'lesson_plan' for LessonPlan.):
app/controllers/teacher/private_classes_controller.rb:11:in `add_lesson_plan'
Что мне нужно сделать, это ввести данные поля плана урока в плане урока таблицу с private_class_id Если что-нибудь неправильно, пожалуйста, поправьте меня.
UPDATE
здесь результаты Кладет заявления:
def add_lesson_plan
puts params.inspect, '++++++++++++++++++++++++'
puts @private_class.lesson_plans.new.inspect, '**************************************'
@lesson_plan = @private_class.lesson_plans.new(private_class_params).save!
end
{"utf8"=>"✓", "private_class"=>{"lesson_plans"=>{"title"=>"ggd", "description"=>"gghh", "notes"=>"gggkd"}}, "commit"=>"Create lesson plan", "controller"=>"teacher/private_classes", "action"=>"add_lesson_plan", "teacher_id"=>"carmel-cynthia", "private_school_id"=>"dr-jasmine-e-mcnair-high-school", "id"=>"1"}
++++++++++++++++++++++++
#<LessonPlan id: nil, title: nil, description: nil, notes: nil, subject_id: nil, teacher_id: nil, created_at: nil, updated_at: nil, is_private: true, is_publish: false, user_id: nil, publish_date: nil, popularity_count: 0, is_special: false, private_class_id: 1>
**************************************
Если вы не ум могли бы вы объяснить '[: lesson_plans]'? Кроме того, пожалуйста, добавьте источник рубинового документа. :) Я имею в виду, что именно делает '[: lesson_plans]' делает? – LearningROR
Я отредактировал свой ответ ... надеюсь, это поможет;) – gabrielhilal
Большое спасибо. Ты действительно сделал свой день. :) Оставайтесь Блаженными. Хотел бы я дать вам 10 UP. – LearningROR