我对 Rails 很陌生,我不太了解我的问题出在哪里。几天前刚刚开始,现在我正在尝试向特定帖子添加评论。好吧,从技术上讲,这些不是评论,而是当其他人与请求交互时添加到某个请求的更多日志,例如请求 A 有日志 B、日志 C、日志 D,因此它与评论系统基本相同。
我已经可以创建日志并显示它们,但我的主要问题是为正确的请求显示正确的日志。我的日志已经有正确的请求 ID,但我不知道如何获取特定日志以显示特定请求
这是我的 historys_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])
不起作用,所以我应该在那里放什么?
编辑
历史.rb
class History < ApplicationRecord
belongs_to :job_order, polymorphic: true
belongs_to :actor, class_name: "User"
end
路由文件
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
您想要特定工作订单的历史记录吗?
做
class JobOrder < ApplicationRecord
has_many :histories
end
然后你可以得到所有相关的历史
@job_order.histories
在你看来,你可以做类似的事情......
<% @job_order.histories.each do |history| %>
<%= history.name %>
<%= history.comment %>
<br/>
<% end %>
顺便说一句,对“历史”的复数使用正确的拼写……你的控制器应该是HistoriesController
Rails 比你意识到的更聪明。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句