Как добавить комментарии к конкретному сообщению? - PullRequest
0 голосов
/ 01 июня 2019

Я очень новичок в рельсах, и я не знаю, где моя проблема.Только началось несколько дней назад и сейчас я пытаюсь добавить комментарии к конкретному сообщениюНу, технически это не комментарии, а больше журналов, добавляемых к определенному запросу, когда другие люди взаимодействовали с запросом, например, Запрос A имеет журнал B, журнал C, журнал D, так что он в основном такой же, как система комментариев.

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

Это мой historyys_controller.rb

class HistorysController < ActionController::Base
  before_action :require_login

  def index 
    @historys = History.where(job_order: 1)
  end

  def require_login
    unless session['user_credentials_id']
      redirect_to '/'
    end
  end
end

Это все ещеустановить в качестве временного заполнителя 1 и попробовать что-то вроде

History.where(job_order: @job_order.id)

и

History.where(job_order: params [:id])

, не работает, так что я должен поместить туда?

EDIT

history.rb

class History < ApplicationRecord
    belongs_to :job_order, polymorphic: true
    belongs_to :actor, class_name: "User"
end

rout.rb

Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root 'user_sessions#new'

  get '/sign_in', to: 'user_sessions#new', as: :sign_in
  get '/signup' => 'users#signup', as: 'signup_user'
  delete '/sign_out', to: 'user_sessions#destroy', as: :sign_out
  post '/register' => 'users#register', as: 'register_user'

  get '/users/activate/:id' => 'users#activate', as: 'activate_user'
  get '/users/deactivate/:id' => 'users#deactivate', as: 'deactivate_user'

  get '/job_order_tracking_system' => 'job_orders#dashboard', as: 'job_order_tracking_system'
  get '/job_orders/approve_job_order/:id' => 'job_orders#approve_job_order', as: 'approve_job_order'
  get '/job_orders/reject_job_order/:id' => 'job_orders#reject_job_order', as: 'reject_job_order'
  get '/job_orders/start_job_order/:id' => 'job_orders#start_job_order', as: 'start_job_order'
  get '/job_orders/done_job_order/:id' => 'job_orders#done_job_order', as: 'done_job_order'
  get '/job_orders/cancel_job_order/:id' => 'job_orders#cancel_job_order', as: 'cancel_job_order'

  resources :job_orders do
    resources :historys
  end
  resources :users
  resources :offices
  resources :user_sessions, only: [:create, :destroy]
  resources :notifications do
    collection do
      post :mark_as_read
    end
  end
  # resources :historys
end

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Я также заметил, что у вас есть некоторый интервал между params и [:id].Это должно выглядеть так: params[:id].

0 голосов
/ 01 июня 2019

вы хотите истории для конкретного заказа на работу?

Do

class JobOrder < ApplicationRecord
  has_many :histories
end

Тогда вы можете получить все связанные истории с

@job_order.histories

И в вашемвид, что вы можете сделать что-то вроде ...

<% @job_order.histories.each do |history| %>
  <%= history.name %>
  <%= history.comment %>
  <br/>
<% end %>

Кстати, используйте правильное написание для множественного числа "истории" ... ваш контроллер должен быть HistoriesController Rails умнее, чем вы думаете.

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