表“公司”有一个关联的表“公司列表”,以便公司拥有__很多公司_Listings。当从公司索引页面中选择s公司时,将显示允许插入/修改/删除该公司的所有Company_Listings的页面。
(1)本公司写入缓存
(2)控制权转移到Company_Listings页面
(3)显示所有相关的company_listings
(3)如果输入更新或输入新的company_listing,则Company_Listings Controller读取公司缓存并使用它来确定公司ID
(4)我从未在开发中遇到任何错误,但我偶尔会在Heroku上遇到错误,这些错误似乎是由于缓存的公司信息丢失造成的。
问题 (1)这是这样做的方式,还是应该将公司ID嵌入到路线中 (2)为什么我只在Heroku而不是开发环境中得到这个错误?
模型
class Company < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
has_many :company_listings, dependent: :destroy
class CompanyListing < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
belongs_to :company
控制器
class CompaniesController < ApplicationController
...
def update
Rails.cache.write("company", @company)
...
class CompanyListingsController < ApplicationController
def new_option
@company = Rails.cache.read("company")
@company_listing = CompanyListing.new
@company_listing.company_id = @company.id
end
路线
resources :companies, only: [:destroy, :update]
resources :company_listings, only: [:new, :create, :edit, :destroy] do
collection do
get 'edit_multiple'
post 'update_multiple'
end
end
问题 (1)这是这样做的方式,还是应该将公司ID嵌入到路线中 (2)为什么我只在Heroku而不是开发环境中得到这个错误?
路由 如果编辑公司 http://quiet-fortress-3338.herokuapp.com/company_listings/112/edit 公司id = 112
的地方路由应该是地址是这样的 http://quiet-fortress-3338.herokuapp.com/company/222/edit/company_listing/edit_multiple/?
任何帮助/建议都会非常感激 - 谢谢 - 皮埃尔
答案 0 :(得分:1)
我终于找到了导致Heroku错误的原因。我在CompanyListing模型中添加了验证。然后这引起了一些误导性的Heroku错误Heroku&#34;缺少公司ID&#34;。 因此,出于某种奇怪的原因,缓存内存被覆盖的情况并非如此。谢谢 - 皮埃尔