Я работаю над проектом в rails 4, где создаю динамические выпадающие списки. Ниже приведен код, который я сделал для этого раскрывающегося списка. Падения появляются, но не сохраняются на столе и не отображаются на шоу (и да, у меня есть правильный рубин, то есть <%= @reports.site_id %>
.Динамическое раскрывающееся меню SelectBox в Rails Проблема
Я не уверен, что делать дальше, и я немного уверен рельсы нуб, но работал через учебники и классы на языке
Моей форма Select Box выглядит следующим образом:.
`<%= collection_select(:site, :site_id, Site.all, :id, :site_call_sign, {}, { :multiple => false %>`
выше выбор доза коробки получить данные из таблицы сайта, но не будет сохранять эти данные к таблице отчетов. `
My Controller выглядит следующим образом:
class ReportsController < ApplicationController
before_action :set_report, only: [:show, :edit, :update, :destroy]
# GET /reports
# GET /reports.json
def index
@search = ReportDateSearch.new(params[:search])
@reports = @search.scope
@reports = Report.all
# Adds CSV Downloader to Residents
respond_to do |format|
format.html
format.csv { render text: @reports.to_csv }
end
end
# GET /reports/1
# GET /reports/1.json
def show
end
# GET /reports/new
def new
@report = Report.new
end
# GET /reports/1/edit
def edit
end
# POST /reports
# POST /reports.json
def create
@report = Report.new(report_params)
respond_to do |format|
if @report.save
format.html { redirect_to @report, notice: 'Report was successfully created.' }
format.json { render :show, status: :created, location: @report }
else
format.html { render :new }
format.json { render json: @report.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /reports/1
# PATCH/PUT /reports/1.json
def update
respond_to do |format|
if @report.update(report_params)
format.html { redirect_to @report, notice: 'Report was successfully updated.' }
format.json { render :show, status: :ok, location: @report }
else
format.html { render :edit }
format.json { render json: @report.errors, status: :unprocessable_entity }
end
end
end
# DELETE /reports/1
# DELETE /reports/1.json
def destroy
@report.destroy
respond_to do |format|
format.html { redirect_to reports_url, notice: 'Report was successfully destroyed.' }
format.json { head :no_content }
end
end
# Adds CSV Uploader Method to Application
def import
Report.import(params[:file])
redirect_to reports_path, notice: "Report(s) Added Successfully"
end
private
# Use callbacks to share common setup or constraints between actions.
def set_report
@report = Report.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def report_params
params.require(:report).permit(:date, :site_id, :user_id, :type_of_report, :type_of_incident, :report)
end
end
моя модель выглядит следующим образом:
class Report < ActiveRecord::Base
belongs_to :user
belongs_to :site
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Report.create! row.to_hash
end
end
def self.to_csv
CSV.generate do |csv|
csv << column_names
all.each do |report|
csv << report.attributes.values_at(*column_names)
end
end
end
end
My Show Page Похож:
<p id="notice"><%= notice %></p>
<p>
<strong>Date:</strong>
<%= @report.date %>
</p>
<p>
<strong>Site:</strong>
<%= @report.site_id %>
</p>
<p>
<strong>Created By:</strong>
<%= @report.user_id %>
</p>
<p>
<strong>Type of report:</strong>
<%= @report.type_of_report %>
</p>
<p>
<strong>Type of incident:</strong>
<%= @report.type_of_incident %>
</p>
<p>
<strong>Report:</strong>
<%= @report.report %>
</p>
<%= link_to 'Edit', edit_report_path(@report) %> |
<%= link_to 'Back', reports_path %>
не слишком уверен, куда я иду неправильно здесь . Любая помощь будет принята с благодарностью
Не могли бы вы изменить свой вопрос, чтобы показать больше своего контроллера? В частности, нам нужно увидеть, что действие действительно сохраняет отчет. –
@SeanHuber Я добавил весь свой контроллер ... как было сказано в открытии вопроса, я все еще новичок в рельсах и думал, что полный обзор будет лучше, чем уловка дерьма, чтобы узнать, что вы хотели бы видеть. Благодарю. –
Не беспокойтесь, проблема может произойти по разным причинам, и мне может потребоваться дополнительная информация. См. Мой первоначальный ответ ниже и дайте мне знать, если это сработает. Если нет, нам нужно будет взглянуть на представления для ваших новых действий и действий редактирования. –