Tag: 关系

分配关系id以在创建时记录,但不在更新时记录

我有两个模型:页面有很多部分。 我没有使用嵌套资源,因为还有第三个模型。 在我的页面#show中,我有一个链接来创建属于当前页面的新部分: @page) %> 在我的部分视图中,我有以下forms: . . . params[“page_id”] %> 当然,问题是这会将page_id正确传递到新的Section表单中,但是当用户通过编辑路径返回到表单时,params [“page_id”]为空。 我想在创建时设置一次page_id,并且永远不要让它再次被更改(也许有一种方法可以创建一个从表单中删除隐藏字段的条件,或者更清晰的方式?)。 非常感谢你的帮助。

地铁簿的轨道模型(公司,个人,地址)

我想创建一套类似地址簿的模型来代表公司,人,位置等。这看起来非常典型的地址簿,我想知道是否有人在轨道3上已经使用ruby。问题似乎不是(仅)因为我的懒惰,但也因为“最佳实践”的方法通常很发达,有较少的陷阱等。目前我想到以下模型/领域: 公司: 名称 has_many:人 has_many:位置 has_many:urls,:through =>:urlcatalog 拥有URL目录的原因是可以为URL分配注释 人: 名字可能会拆分为第一个中间位置 电话 has_one:location has_many:电子邮件:through =>:emailcatalog 拥有电子邮件目录的原因与上述相同:可以为其分配“私人”,“办公室”标签。 许多手机也可以这种方式组织起来。 地点 地址可选 has_one:city has_one:country 城市或国家应该在场 市 名称 has_one:country 国家 名称 欢迎任何关于这个概念,想法,工作实例等的评论!

Rails:ActionView :: Template :: Error(NilClass的未定义方法`model_name’:Class):

可能重复: MetaSearch“未定义的方法`model_name’用于NilClass:Class”用于全局条形搜索 当我尝试访问用户的个人资料或个人post(/ posts / 1)时,这是我使用更新的代码时出现的错误。 奇怪的是它试图访问不同的部分,因为它是一个没有任何喜欢的新用户。 我得到的代码完全如我在以下用户使用的教程中所示。 对于跟随用户的用户来说,它可以正常工作,但我已经设置好了尝试与喜欢post的用户一起工作。 ActionView::Template::Error (undefined method `model_name’ for NilClass:Class): 1: { :method => :delete }, 3: :remote => true) do |f| %> 4: app/views/users/_unlike.html.erb:1:in `_app_views_users__unlike_html_erb___769256097635878617_2160255900__1293121959744503098′ app/views/users/_like_form.html.erb:6:in `_app_views_users__like_form_html_erb___3308190581058867471_2162903180_52867338942162503′ app/views/posts/show.html.erb:7:in `_app_views_posts_show_html_erb___3188789470217885182_2183453320__3624460432667345580′ 这里有几乎所有东西的馅饼,如果我错过了什么,请告诉我。 我真的很感激能够让这个工作变得有意义。 http://pastie.org/1824955

从用户标识中检索用户名

嗨,我有一个post模型,其中post属于用户,用户has_manypost。 posts表有一个user_id 在我的节目帖中,我有: 我得到用户ID谁发布这个工作正常。 当Users表包含列User_name时,如何获取用户名?我是否需要将post_id添加到Users或? class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :username, :password_confirmation, :remember_me has_one :profile has_many :orders has_many :posts end class Post < ActiveRecord::Base belongs_to :user attr_accessible :content, :title, :user_id validates :title, presence: true, length: { minimum: 5 } end 在我的post控制器我有 def create @post = Post.new(params[:post]) […]

Neo4j gem – 处理管理关系的首选方法

这主要是一个设计/效率问题,但我想看看是否有一种首选方法来处理neo4j,而不是我在sql db中如何处理它。 现在我有2个模型 – user和event 。 我还有user和event之间的关系来表示他们将参加活动。 我想找出代表活动管理员的最佳方式。 换句话说,我希望能够查询用户所关注的事件。 一种方法是在用户和event之间创建一个名为admin_of的新关系。 另一种方法是创建参与关系的管理属性。 admin: true admin_of查询看起来很简单,但又增加了与db的关系。 它也可以在以后处理多个管理员。 后一种方式可以通过类似的东西来查询:(来自文档) EnrolledIn.where(since: 2002)所以我的搜索将包括admin: true 。 但是我不知道如何链接这个,因为我希望它只是朋友活动。 另一个查询通常基于节点而不是关系的属性。 后一种方法似乎是一种首选的方法,但查询它的正确方法是什么? 或者是第一种更简单的方法,即使它增加了额外的关系? 更新:我想出了类似的东西 result = Event.query_as(:event).match(“event<-[invite: INVITED]-(user: User)<-[:FRIENDS_WITH]-(user)").where(invite: {admin: /true/}).pluck(:event) 基于详细的查询 https://github.com/neo4jrb/neo4j/wiki/Search-and-Match 更新2 我现在有这个,但没有得到匹配。 什么是开始解决我的查询错误的最佳方法? current_user.friends.events.query_as(:event).match(“event<-[invite]-(user: User)<-[friends_with]-(user)").where(invite: {admin: true}, event: {detail: 'property'}).pluck(:event) 我的用户模型有 has_many :both, :events, model_class: ‘Event’, rel_class: ‘Invite’ 我的活动模型有 has_many :both, […]

图边缘轨道

我最近在尝试在rails中建立双向关系时发现了这一点( http://www.dweebd.com/sql/modeling-bidirectional-graph-edges-in-rails/ ) class Befriending :User belongs_to :recipient, :class_name => :User after_create do |b| BefriendingEdge.create!(:user => b.initiator, :befriending => b) BefriendingEdge.create!(:user => b.recipient, :befriending => b) end end class BefriendingEdge < ActiveRecord::Base belongs_to :user belongs_to :befriending end class User :befriending_edges, :source => :user has_many :befriendings, :through => :befriending_edges, :source => :befriending end 但我只是不太明白它是如何工作的。 任何人都可以帮我解释一下。 它看起来像一个double […]

在rubyonrails中,如何从ActiveRecord :: Relation对象获取关联的模型类?

假设我有一个模型: class Post end posts = Post.where(***) puts posts.class # => ActiveRecord::Relation 那么如何通过变量’posts’获取模型类名,也许是一些名为model_class_name的方法: put posts.model_class_name#=>发布 谢谢 :)

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: […]

rails模型范围中的关联数据

我有一个名为Post (博客文章)的模型和一个名为Category的模型。 每个postbelongs_to一个类别。 每个类别都有一个名为retainer的属性,用于指定post“过期”之前的时间量,例如movies_category.retainer = 30.days 我要做的是为Post创建一个范围,找到所有“过期”的post。 因此,例如,假设我要对30.days的值进行硬编码并且它适用于所有类别(因此所有post),范围将是: scope :expired, lambda { where(“posts.created_at < ?", 30.days.ago) } 但是,我没有对值30.days.ago进行硬编码,而是希望从post的类别中获取retainer值,并根据该条件确定条件,例如: scope :expired, lambda { where(“posts.created_at < ?", Time.now – post.category.retainer) } 所以说得好:我希望获得所有过期的post,并且过期状态由每个post的类别的保留值确定(即电影类别中的post在10天后到期,游戏类别中的post在5天后到期等) 这有可能吗? 我需要某种forms的加入吗?

Rails 3友情模特:如何忽略好友请求?

我有传统的友谊模式: 用户模型具有: has_many :friendships, :dependent => :destroy has_many :friends, :through => :friendships, :dependent => :destroy has_many :inverse_friendships, :class_name => “Friendship”, :foreign_key => “friend_id”, :dependent => :destroy has_many :inverse_friends, :through => :inverse_friendships, :source => :user, :dependent => :destroy 我想仅在朋友请求被发送并且被其他用户接受时才定义状态“朋友”。 一切正常,除了我没有设法处理“忽略朋友请求”部分。 我要做的是:在用户个人资料页面上,有一个来自其他用户的请求列表,等待批准。 然后,用户可以接受朋友请求(然后它成为朋友)或拒绝它(然后销毁友谊关系)。 这是友谊控制器中的一段代码,当它阻塞时: Waiting your approval ( user), :method => :post %>, :friendships, :method => :delete […]