Могу ли я отправить данные формы с одного контроллера на ruby ​​на rails api controller? - PullRequest
0 голосов
/ 07 марта 2019

Я относительно новичок в этом, так что терпите меня, если я не соблюдаю все правила или не размещаю должным образом. Короче говоря, у меня есть приложение rails, получающее данные через контроллер API. Я могу написать с почтальоном, и все работает отлично. Однако я обнаружил необходимость вручную вводить некоторые измерения и добавлять данные в столбцы существующих измерений.

Можно ли отправить данные формы в ту же таблицу, что и контроллер api? Я мог бы создать отдельный контроллер ручного ввода, но кажется более сложным просматривать измерения с двух контроллеров, так как моя цель - отобразить самые последние измерения. Спасибо.

Правка-- Я постараюсь объяснить лучше. Я добавил свою схему базы данных. У меня есть несколько датчиков ввода данных в API для отслеживания уровней в бункерах. Однако не все ячейки будут иметь датчики, и есть вероятность, что датчик выйдет из строя, и мне потребуется ввести измерения. Я могу сделать это с почтальоном, но хотел бы иметь возможность настроить форму, которая позволит мне вводить параметры в таблицу измерений, аналогично тому, как я делаю это с моим контроллером 'bin'. Кроме того, я работаю с Rails и веб-программированием только 2 месяца. У меня очень мало опыта, но я многому научился. Спасибо.

ActiveRecord::Schema.define(version: 2019_03_06_131737) do

  # These are extensions that must be enabled in order to support this database
  enable_extension "plpgsql"

  create_table "bins", force: :cascade do |t|
    t.string "name"
    t.decimal "diameter"
    t.decimal "total_height"
    t.decimal "inside_height_diff"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.decimal "response_angle"
    t.decimal "hopper_height"
    t.integer "inside_offset"
    t.integer "outside_offset"
    t.decimal "ring_height"
  end

  create_table "measurements", force: :cascade do |t|
    t.integer "outside"
    t.integer "inside"
    t.bigint "bin_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "comment"
    t.boolean "outside_fill"
    t.boolean "inside_fill"
    t.index ["bin_id"], name: "index_measurements_on_bin_id"
  end

  create_table "shipments", force: :cascade do |t|
    t.integer "ticket"
    t.date "ship_date"
    t.time "ship_time"
    t.string "commodity"
    t.string "owner"
    t.string "carrier"
    t.decimal "gross"
    t.decimal "tare"
    t.decimal "moisure"
    t.decimal "dock"
    t.decimal "test_weight"
    t.decimal "vom"
    t.string "comment"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  add_foreign_key "measurements", "bins"
end
class Api::MeasurementsController < ApplicationController
  skip_forgery_protection

  def index
    measurements = Measurement.all
    render json: measurements
  end

  def create
    measurement = Measurement.create(
      outside: params[:outside],
      inside: params[:inside],
      bin_id: params[:bin_id],
      outside_fill: params[:outside_fill],
      inside_fill: params[:inside_fill],
      comment: params[:comment]
    )
    render json: measurement
  end

  def delete
    measurement = Measurement.find(params[:id])
    measurement.destroy
  end

  def update
    measurement = Measurement.find(params[:id])
    measurement.outside = params[:outside]
    measurement.inside = params[:inside]
    measurement.bin_id = params[:bin_id]
    measurement.outside_fill = params [:outside_fill]
    measurement.inside_fill = params [:inside_fill]
    measurement.comment = params [:comment]
    measurement.save!
    render json: measurement
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...