#<Property::ActiveRecord_Relation 的未定义方法“id”

san*_*adi 4 associations ruby-on-rails-4 rails-activerecord

抱歉问了个愚蠢的问题

在这里,当我加注时,@property我会争吵,但是当我加注时,@property.id它显示undefined method id给我对此的结论

owner.rb

has_many :properties
Run Code Online (Sandbox Code Playgroud)

property.rb

belongs_to :owner
Run Code Online (Sandbox Code Playgroud)

在owner_controller.rb中

def new    
user = User.friendly.find(current_user.slug)
@owner = user.owner
authorize @owner
@property = Property.where(owner_id: @owner)
#raise @property.id.inspect
@renter = User.friendly.find(params[:renter_id]).renter  
@message = Message.new(renter_id: @renter.id, owner_id: @owner.id,property_id: @property.id)
end
Run Code Online (Sandbox Code Playgroud)

提前致谢

Pav*_*van 5

正如我所说,where返回一个Active Record关系,它是一个array. 尝试下面的方法

raise @property.first.id
Run Code Online (Sandbox Code Playgroud)

或者

改变这个

@property = Property.where(owner_id: @owner)
Run Code Online (Sandbox Code Playgroud)

@property = Property.find_by(owner_id: @owner)
Run Code Online (Sandbox Code Playgroud)