Форма_ для выбора между двумя контроллерами

У меня есть две таблицы, одна называется целью, а другой день, поскольку день принадлежит цели, и у каждой цели много дней. У меня есть два контроллера GoalsController и DaysController. Вот они:

class GoalsController < ApplicationController
  before_action :find_goals, only: [:show, :edit, :update, :destroy]

  def index
    @goal = current_owner.companies.find(params[:company_id]).goal
  end

  def new
    @goal = Goal.new
  end

  def show
    @goalcompanyid = @goal.company_id
  end

  def create
    @goal = Goal.new(params_goal)
    if @goal.save
      @company = @goal.company
      redirect_to company_path(:id => @company.id)
    else
      flash.now[:error] = "Could not create goal!"
      render :new
    end
  end

  def edit

  end

  def update
    if @goal.update(params_goal)
      flash[:notice] = "Goal updated with success!"
      @company = @goal.company
      redirect_to company_path(:id => @company.id)
    else
      flash.now[:error] = "Could not update goal!"
      render :edit
    end
  end

  def destroy
    @days = Day.find_by(goal_id: @goal.id)
    @days.destroy
    @goal.destroy
    @company = @goal.company
    redirect_to company_path(:id => @company.id)
  end

  private

  def find_goals
    @goal = Goal.find(params[:id])
  end

  def params_goal
    params.require(:goal).permit(:name, :totalvalue, :date_start, :date_end, :month).merge(company_id: params[:company_id])
  end
end

DaysController:

class DaysController < ApplicationController
  before_action :find_day, only: [:show, :edit, :update]

  def index
    @day = current_owner.companies.find(params[:company_id]).goal.find(params[:goal_id]).days
  end

  def show
    authorize! :read, @day
  end

  def edit
    authorize! :update, @day
  end

  def update
    authorize! :update, @day
    if @day.update(params_day)
      flash[:notice] = "Day updated!"
      redirect_to company_salesman_path(:id => @day.id)
    else
      flash.now[:error] = "Could not update day!"
      render :edit
    end
  end

  private

  def find_day
    @day = Day.find(params[:id])
  end

  def params_day
    params.require(:day).permit(:value, day_salesman_attributes: [:id, salesman_attributes:[:name]])
  end
end

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

0 ответов

Другие вопросы по тегам