我的应用程序包含两个表 - Companies和Company_Listings。公司可能有一个或多个Company_Listings。目前,应用程序将company.id设置在缓存中(例如Rails.cache.write(“company”,@ company)),在Company_Listings控制器中,我通过@company = Rails.cache.read(“company”)访问Company.id )。
我现在意识到我不应该这样做并且应该访问公司.Id从路线(至少这是我的理解)。这个我做不到。
相关代码包括更改路径。
公司模式
class Company < ActiveRecord::Base
...
has_many :company_listings, dependent: :destroy
公司上市模式
class CompanyListing < ActiveRecord::Base
...
belongs_to :company
路线
scope '/company' do
resources :company_details, only: [:new_listed_option,:index, :new, :create]
match 'company_listings/listed_option_listing',
:to => 'company_listings#new_listed_option', :as => 'listed_option_listing',
:via => :get
match 'company_listings/unlisted_option_listing',
:to => 'company_listings#new_unlisted_option', :as => 'unlisted_option_listing',
:via => :get
resources :company_listings, only: [:new_listed_option, :new, :create, :edit,:destroy] do
collection do
get 'edit_multiple'
get 'update_multiple' # put in to fix Heroku at least I thought that
post 'update_multiple'
end
end
end
编辑公司时,路线显示为 http://quiet-fortress-3338.herokuapp.com/company/company_listings/211/edit 在这种情况下,211指的是公司(而不是comapny_listing.id之一)。
在公司列表控制器内如何访问Comany.id(在这种情况下是211? 我尝试了
的变体@company = Company.find(params[:id])
提前致谢 皮尔
公司模型
params.require(:company).
permit(:full_name)
Company_Listings模型
params.require(:company_listing).
permit(:company_id,
:share_price_dollars,
:option_unlisted,
:exchange_id,
:option_name,
:option_expiration_date,
:option_strike_price_dollars,
:share_number,
:company_code )
因此,在添加新选项时,这是一个可能的Company_Listing,我想要Company.Id,因此该选项具有指向Companies表的链接。