Я новичок в рельсах, поэтому любая предложенная помощь будет высоко оценена.
Цель:
когда пользователь оставляет заметку (комментарий) в форме, я хотел бы знать userr_id и form_id в этой заметке. Я не уверен, как связать form_id с заметкой. когда я создаю заметку, он сообщает мне, какой пользователь (userr_id) создал ее, но не сообщает мне, к какой форме (form_id) принадлежит заметка - любая помощь будет очень признательна - спасибо
в настоящее время у меня есть следующие модели и представления, созданные
- [модель] примечание принадлежит_к :userj
- [модель] примечание принадлежит_к: форма
- [модель] форма has_many: заметки
- [модель] userj has_many: примечания
моя консоль:
2.1.2 :062 > ap Note.all
Note Load (0.4ms) SELECT "notes".* FROM "notes"
[
[0] #<Note:0x007fbde666cd70> {
:id => 4,
:content => "hello",
:form_id => nil,
:created_at => Thu, 09 Jul 2015 23:17:19 UTC +00:00,
:updated_at => Thu, 09 Jul 2015 23:17:19 UTC +00:00,
:userr_id => 1
}
]
модели:
note.rb
class Note < ActiveRecord::Base
belongs_to :userj
belongs_to :form
end
form.rb
class Form < ActiveRecord::Base
has_many :notes
end
userr.rb
class Userr < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
has_many :notes
end
формы/show.html.erb
<p>
<strong>Firstname:</strong>
<%= @form.firstname %>
</p>
<p>
<strong>Lastname:</strong>
<%= @form.lastname %>
</p>
<p>
<strong>Number:</strong>
<%= @form.number %>
</p>
<p>
<strong>Email:</strong>
<%= @form.email %>
</p>
<h2> Recruiters Notes on jobseeker form</h2>
<p>
<%= render 'notes/form' %>
</p>
примечания/_form.html.erb
я попытался передать form_id, как показано ниже, но когда я создаю заметку для формы, он не говорит мне, к какой форме принадлежит заметка, поскольку столбец form_id (в таблице заметок) указывает nill в консоли
<%= simple_form_for(@note) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :content %>
<%= f.hidden_field :form_id, value: params[:form_id] %>
</div>
<div class="form-actions">
<%# f.button :submit %>
<%= f.button :submit , name: "form", value: params[:form_id] %>
</div>
<% end %>
notes_controller.rb
class NotesController < ApplicationController
respond_to :html, :xml, :json
before_action :set_note, only: [:show, :edit, :update, :destroy]
def index
@notes = Note.all
respond_with(@notes)
end
def show
respond_with(@note)
end
def new
@note = Note.new
respond_with(@note)
end
def edit
end
def create
@note = Note.new(note_params)
@note.userr_id = current_userr.id
@note.save
respond_with(@note)
end
def update
@note.update(note_params)
respond_with(@note)
end
def destroy
@note.destroy
respond_with(@note)
end
private
def set_note
@note = Note.find(params[:id])
end
def note_params
params.require(:note).permit(:content, :form_id, :userr_id)
end
end
Forms_controller.rb
class FormsController < ApplicationController
respond_to :html, :xml, :json
before_action :set_form, only: [:show, :edit, :update, :destroy]
def index
...
end
def show
@note = Note.new
respond_with(@form)
end
def new
...
end
def edit
end
def create
@form = Form.new(form_params)
@form.userj_id = current_userj.id
if @form.save
MailerFormsubmission.form_submission_confirmation(@form).deliver
redirect_to application_submitted_path
else
redirect_to userr_advert_path(advert.userr, advert)
end
# respond_with(@form)
end
def update
...
end
def destroy
...
end
private
def set_form
@form = Form.find(params[:id])
end
def form_params
....
end
end
userj
иuserr
. Что он? Пожалуйста, исправьте код/сообщение. - person steve klein   schedule 10.07.2015<%= simple_form_for(@form.note) do |f| %>
, либо связать @note с @form в вашем контроллере. В партиале тоже не стоит явно ссылаться наform_id
илиparams
, просто собрать нужные атрибуты для экземпляра формы и создать в контроллере. - person steve klein   schedule 10.07.2015:form_id
передается в параметры нормально? Можем ли мы увидеть ваши маршруты? - person Wes Foster   schedule 10.07.2015