Ruby-on-Rails访问表id

时间:2014-04-08 00:53:19

标签: ruby-on-rails nested-routes

我的应用程序包含两个表 - 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表的链接。

0 个答案:

没有答案