Я пытаюсь получить текст из поля text_area
в форме для сохранения в базе данных в другой модели с идентификатором текущей модели.Сохранение в другой базе данных модели с текущим идентификатором записи формы - Rails
В настоящее время это работает, но только сохраняет целые числа. Если я поместил текст в поле «Примечания», то он сохранит его как «0». Я подозреваю, что это работает правильно, но мне не хватает части моей головоломки. Это связано с тем, что я хочу, чтобы «Ticket» сохранил note_id, потому что у меня будет несколько «Notes» per 'Ticket.
Как я могу получить примечание для сохранения в модели заметок с идентификатором и связать это note_id
с этим конкретным билетом?
Форма - /app/views/tickets/_form.html.erb
<%= form_for(@ticket) do |f| %>
<% if @ticket.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@ticket.errors.count, "error") %> prohibited this ticket from being saved:</h2>
<ul>
<% @ticket.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.fields_for :notes do |u|%>
<%= u.label :note %>
<%= u.text_area :note, :size => "101x4", :placeholder => "Leave notes here." %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Tickets_controller.rb
class TicketsController < ApplicationController
# GET /tickets
# GET /tickets.json
def index
@tickets = Ticket.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @tickets }
end
end
# GET /tickets/1
# GET /tickets/1.json
def show
@ticket = Ticket.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @ticket }
end
end
# GET /tickets/new
# GET /tickets/new.json
def new
@ticket = Ticket.new
@ticket.notes.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @ticket }
end
end
# GET /tickets/1/edit
def edit
@ticket = Ticket.find(params[:id])
end
# POST /tickets
# POST /tickets.json
def create
@ticket = Ticket.new(params[:ticket])
respond_to do |format|
if @ticket.save
format.html { redirect_to @ticket, notice: 'Ticket was successfully created.' }
format.json { render json: @ticket, status: :created, location: @ticket }
else
format.html { render action: "new" }
format.json { render json: @ticket.errors, status: :unprocessable_entity }
end
end
end
# PUT /tickets/1
# PUT /tickets/1.json
def update
@ticket = Ticket.find(params[:id])
respond_to do |format|
if @ticket.update_attributes(params[:ticket])
format.html { redirect_to @ticket, notice: 'Ticket was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @ticket.errors, status: :unprocessable_entity }
end
end
end
# DELETE /tickets/1
# DELETE /tickets/1.json
def destroy
@ticket = Ticket.find(params[:id])
@ticket.destroy
respond_to do |format|
format.html { redirect_to tickets_url }
format.json { head :no_content }
end
end
end
Note.rb
class Note < ActiveRecord::Base
belongs_to :ticket
attr_accessible :note, :ticket_id
end
Ticket.rb
class Ticket < ActiveRecord::Base
attr_accessible :notes_attributes
accepts_nested_attributes_for :notes
end
Спасибо - я хочу, чтобы он сохранил note_id здесь, чтобы часть была правильной. Но я не могу понять, как получить заметку для сохранения в базе данных Note Model и связать «note_id» с «ticket_id». Есть предположения? – Devin
Почему у вас есть «note_id» в модели билета? – codeit
@codeit Вы правы, он не нуждается в этом. Его модель/строка Note будет иметь столбец 'ticket_id'. –