加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails select_tag不会访问belongs_to关系

发布时间:2020-12-17 02:08:00 所属栏目:百科 来源:网络整理
导读:我想做一个 select_tag "employee_compensation_benefits_selection",options_from_collection_for_select(@employees,"id","entity.name","1") 但是entity.name不会工作会抛出一个未定义的方法`entity.name’. “entity”属于另一个模型.通过entity_id clas
我想做一个

select_tag "employee_compensation_benefits_selection",options_from_collection_for_select(@employees,"id","entity.name","1")

但是entity.name不会工作会抛出一个未定义的方法`entity.name’. “entity”属于另一个模型.通过entity_id

class Employee < ActiveRecord::Base

  include UUIDHelper

  belongs_to :entity
  has_one :status
  has_many :restdays
  has_one :regular_work_period

  validates_presence_of :entity

end

require 'file_size_validator'
class Entity < ActiveRecord::Base

  include UUIDHelper

  has_one :access,autosave: true
  has_one :employee,autosave: true
  has_many :contact_detail,autosave: true
  has_many :file_set
  has_many :link_set

  mount_uploader :logo,AvatarUploader
  validates_presence_of :name
  validates :name,uniqueness: true
  validates_length_of :description,maximum: 256

  validates :logo,:file_size => {
            :maximum => 25.megabytes.to_i
        }
end

解决方法

您可以向员工添加可以调用的方法,例如:

class Employee < ActiveRecord::Base
  ...

  def entity_name
    self.entity.name
  end
end

然后:

select_tag "employee_compensation_benefits_selection","entity_name","1")

或者您可以使用lambda而不是添加方法:

select_tag "employee_compensation_benefits_selection",lambda { |employee| employee.entity.name },"1")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读