Tag: 属于

belongs_to has_one结构

我有一个具有以下特点的应用程序 There are Clubs Each Club has Teams Each Team has Players 我有一个用户表。 用户表基本上包含俱乐部经理,团队经理和登录系统的玩家的用户名和密码。 我应该如何构建模型和表格? 我打算为俱乐部,团队和球员创建表格。 但我不确定show是否构建了它们与users表之间的关系。 我可以在每个模型中创建user_id ,但关系将是Club belongs_to User ,这似乎不对。 此外,我最终会得到一个具有以下内容的用户模型 has_one :club has_one :team has_one :player 哪个不对。 用户在任何给定时间只能拥有其中一个。 有没有更好的方法来构建它?

Rails 4关系问题,登录时

我不确定在尝试登录时遇到此错误会发生什么变化: ERROR: relation “tags” does not exist LINE 1: SELECT DISTINCT “tags”.* FROM “tags” INNER JOIN “taggings” O… 标签模型: class Tag < ActiveRecord::Base attr_accessor :unread_count, :user_feeds has_many :taggings has_many :feeds, through: :taggings end 标记模型: class Tagging < ActiveRecord::Base belongs_to :tag belongs_to :feed belongs_to :user end 和用户关系: class User < ActiveRecord::Base has_one :coupon has_many :subscriptions, dependent: […]

belongs_to belongs_to association only only has_many或has_one

你能在Rails中拥有belongs_to belongs_to关系吗? 搜索 结果给了我两个结果。 事实上我找不到关于这个主题的非常多的信息,这似乎表明它不应该被做或者是不好的做法。 我昨天问了一个关于a_many关系的问题,但是因为我找不到相关的信息,我会生成一个问题,以便人们在将来更容易搜索这个问题。 我正在解释另一个用户的答案(我希望这没关系)。 鞋子可以有很多袜子,但只有一个活跃的袜子。 其他袜子不活跃。 所有袜子都是独一无二的独特图案。 我想确保我没有相同图案的袜子。 我想我可以这三种方式做到这一点 class Sock < ActiveRecord::Base belongs_to :shoe end 要确定袜子是活动还是非活动,请给它的’所有者鞋提供对其活动袜子的引用,如下所示: class Shoe < ActiveRecord::Base belongs_to :sock end 去它的主人Shoe并检查Shoe的活动袜子是否是当前的袜子。 例如 def is_active owner_shoe.active_sock == self 将它们与外键相关联 class CreateGettingDressed < ActiveRecord::Migration def change create_table :shoes do |t| t.belongs_to :active_sock, foreign_key: "sock_id" t.string :size t.timestamps null: false end […]

在两个实例化对象之间创建关联

我有两个型号:(专辑和产品) 1)内部模型 在album.rb里面: class Album < ActiveRecord::Base attr_accessible :name has_many :products end 内部product.rb: class Product < ActiveRecord::Base attr_accessible :img, :name, :price, :quantity belongs_to :album end 2)使用“ rails console ”,如何设置关联(所以我可以使用“”)? 例如 a = Album.create( :name => “My Album” ) p = Product.create( :name => “Shampoo X” ) # what’s next? how can i set the album […]

Rails-y查询具有belongs_to关联的模型的方法

我有两个型号: class Wine belongs_to :region end class Region has_many :wines end 我试图使用#where方法,通过将params哈希中的某些元素转换为查询哈希来构建哈希,例如{ :region => ‘2452’ } def index … @wines = Wine.where(hash) … end 但是我得到的只是在执行查询时列不存在错误: ActiveRecord::StatementInvalid: PGError: ERROR: column wines.region does not exist LINE 1: SELECT “wines”.* FROM “wines” WHERE “wines”.”region” =… 当然,表wines有region_id所以如果我查询region_id而不是我不会得到错误。 问题如下: 是否有一种rails-y方式使用#where方法中的id查询Wine对象的特定regions ? 我根据我所知道的可以做的,列出了以下一些选项。 选项1:我可以改变构建查询哈希的方式,以便每个字段都有_id (如{ :region_id => ‘1234’, :varietal_id => ‘1515’ […]

has_one有两个外键?

我有两个类Message和User。 邮件具有sender_id和recipient_id两个用户的外键。 如何构建关系,我将能够为发件人和收件人获取用户,例如@ message.sender.name和@ message.recipient.name 我试着这样做: class Message ‘User’, :foreign_key => ‘sender’ belongs_to :recipient, :class_name => ‘User’, :foreign_key => ‘recipient’ end class User ‘Message’, :foreign_key => ‘recipient’ has_many :send_messages, :class_name => ‘Message’, :foreign_key => ‘sender’ end 但它没有帮助,当我试图访问,例如,@ message.recipient.name它说“未定义的方法`名称’”

找到所有子记录都具有给定值的所有父记录(但不仅仅是一些子记录)

一个活动有很多参与者。 参与者具有“状态”字段。 class Event < ActiveRecord::Base has_many :participants end class Participant < ActiveRecord::Base belongs_to :event end 我需要找到除以下事件之外的所有事件:每个参与者都具有“现在”状态的事件。 我可以通过以下AR代码找到其中一些参与者具有“现在”状态的所有事件: Event.joins(:participants).where .not(participants: {status: ‘present’}) .select(“events.id, count(*)”) .group(“participants.event_id”) .having(“count(*) > 0”) 这就创建了SQL: SELECT events.id, participants.status as status, count(*) FROM `events` INNER JOIN `participants` ON `participants`.`event_id` = `events`.`id` WHERE (`participants`.`status` != ‘present’) GROUP BY participants.event_id HAVING count(*) > 0 […]

validation失败类必须存在

我在Rails中遇到了很多关联的问题。 我发现了很多类似的问题,但我不能申请我的案子: 城市class级: class City < ApplicationRecord has_many :users end 用户class级: class User < ApplicationRecord belongs_to :city validates :name, presence: true, length: { maximum: 80 } validates :city_id, presence: true end 用户控制器: def create Rails.logger.debug user_params.inspect @user = User.new(user_params) if @user.save! flash[:success] = “Works!” redirect_to ‘/index’ else render ‘new’ end end def user_params params.require(:user).permit(:name, :citys_id) […]

Rails:非id外键查找ActiveRecord

我希望ActiveRecord通过表中的非id列进行查找。 当我向你提供我的代码示例时,希望这很清楚。 class CoachClass < ActiveRecord::Base belongs_to :coach end class Coach ‘user_name’ end 当我做一个coach_obj.coach_classes ,这正确地触发了 SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 2) (2是教练的id ,这是我的问题。) 我想让它触发 SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = ‘David’) (’David’是那个教练的user_name ) user_name是唯一的,并且存在于两个表中。 出于某种原因,我不希望在coach_classes表中有一个coach_id 。

ror – 在has_many和belongs_to的两端包含外键?

我inheritance的代码有: class Graphic ‘asset_id’, :conditions => ‘asset_type_id = 5’, :order => ‘created_at’, :dependent => :destroy class Comment :asset_id 在我看来,像has_many不应该有foreign_key(它在belongs_to中被引用,我相信)但我不确定,你知道吗? 也就是说 class Graphic ‘asset_type_id = 5’, :order => ‘created_at’, :dependent => :destroy class Comment :asset_id