访问从Model1到Model2的选定列

时间:2017-06-05 06:35:12

标签: ruby ruby-on-rails-3 rails-admin

我目前正在做一个项目,我们正在使用一些宝石,例如:rails admin,devise,cancancan和ability。

我有2张桌子。活动行程和行程。表1中的一个列是:order,在我的行程中,我想调用ActivityItinerary中的订单列,在保存之前设置默认值。

我在编辑现有行程时遇到问题,错误是“订单不能为空”

但是当我创建一个新的活动行程然后再次尝试编辑时,它现在会起作用,因为在我的活动行程中有订单字段

问题:如何从行程中获取订单栏?这样我就可以为该列设置默认值

已编辑

注意:我尝试使用pluck来获取ActivityItinerary中的订单列

问题:为什么它没有在activityItinerary中为我的订单栏添加默认值?

表2 /表2模型

class Itinerary < ApplicationRecord
  belongs_to :user, foreign_key: :created_by
  belongs_to :activity
  before_save :default_value, :count_all_activity
  after_save
  # has_many :activity_itineraries, foreign_key: :created_by
  has_many :activity_itineraries, inverse_of: :itinerary
  has_many :activities, through: :activity_itineraries

  validates :user, presence: true
  validates :title, presence: true, length: { maximum: 20 }
  validates :no_of_days, presence: true,
               :numericality => true

更新:

我已完成第一部分,即在保存之前添加订单的默认值。这是我的更新文件。

注意:我有一个错误未定义方法`count'为1:Integer。

活动行程

class ActivityItinerary < ApplicationRecord

  belongs_to :itinerary, inverse_of: :activity_itineraries
  belongs_to :activity, inverse_of: :activity_itineraries

  before_save :count_all_activity_itinerary

  validates :order, presence: true
  validates :activity_id, presence: true

  after_initialize :set_defaults, unless: :persisted?

  private 

  def set_defaults
    self.order ||= 1 # 
  end

  def count_all_activity_itinerary
    order.count(:conditions => itinerary.id)
  end

end

另一个问题:我如何计算itinerary_id所有的活动路线。这个错误的原因是什么?

0 个答案:

没有答案