Tag: 关联

如何从另一个关联模型的视图编辑模型的属性

我有一个has_one个人资料的用户模型。 用户模型具有name属性,该属性在用户注册时设置。 但是,我想让用户从配置文件的编辑视图中更新该name属性。 我怎样才能做到这一点?

将foreign_key值传递给Rails控制器的更好方法

自从我开始深入挖掘forms,联想,哈希,符号以来已经差不多一个星期……但似乎没有你的帮助我无法解决这个难题。 我正在开展一个展示不同画廊内容的项目。 基本思想是当用户看到画廊的名称(名称是链接)时能够点击所选择的名称。 然后显示属于此库的所有图像。 在底部应该有一个链接“在此库中添加图像”。 我的模特: class Gallery < ActiveRecord::Base attr_accessible :name has_many :pictures end class Picture < ActiveRecord::Base attr_accessible :image belongs_to :gallery end 我在gallery_id上为’pictures’表创建了索引。 我的大问题出现在这里,如何将gallery_id传递给控制器​​的动作’new’。 正如我在“使用Rails进行敏捷Web开发”中看到的那样,它可能是: @ gallery.id)%> 在这种情况下,似乎foreign_key:gallery_id公开在浏览器的URL栏中。 第二个问题是:gallery_id可用于控制器的“新”function,但“创建”function“消失”(导致错误“无法找到没有ID的图库”)。 当我在图片的_form中添加隐藏字段时,问题就消失了,在我的情况下: params[:gallery_id] %> 以下是我在“图片”控制器中的定义: def new @gallery=Gallery.find(params[:gallery_id]) @picture=@gallery.pictures.build end def create @gallery = Gallery.find(params[:gallery_id]) @picture = @gallery.pictures.new(params[:picture]) if @picture.save redirect_to(@picture, :notice => ‘Picture was […]

如何使用rails保护质量分配中的关联保存到数据库

尝试几个小时后,我无法保存到数据库。 上下文是这样的:我有两种类型的用户,一种用于我只需要非常基本的信息[用户名,电子邮件,密码]和另一种用户,我需要大量的信息[年龄,性别,城市等等] ] 我没有使用STI,因为表中会有大量的Null值。 所以我创建了这三种模式,其中用户具有简档(简档表)或不具有取决于其类型[1或2],并且该简档的字段是该用户所居住的城市,其与另一个表相关。数据库,城市表 class User < ActiveRecord::Base has_one :profile has_one :city, through: :profile end class Profile < ActiveRecord::Base belongs_to :user belongs_to :city […a bunch of fields here] end class City < ActiveRecord::Base has_many :profiles has_many :users, through: :profiles end 当我在rails控制台中玩它们时一切顺利: usr = User.new(name: “roxy”, email: “roxy@example.me”, password: “roxanna”, password_confirmation: “roxanna”, utype: 1) cty […]

建模相同模型之间的两种不同关系

两个模型组织和用户具有1:多关系,其中组织具有多个用户(成员;用户也可以不与任何组织关联): class Organization :all_blank, :allow_destroy => true validates_associated :users end class User < ActiveRecord::Base belongs_to :organization, inverse_of: :users end 一切正常,各种测试都通过了。 现在我为主持人function添加了一个额外的关系,其中用户可以拥有(多个)组织的主持人权限。 因此,通过第三个模型有很多:很多关系,我将其称为主持人: class Organization :all_blank, :allow_destroy => true has_many :moderators, class_name: “Moderator”, foreign_key: “reviewee_id”, dependent: :destroy has_many :users, through: :moderators, source: :reviewer validates_associated :users end class User < ActiveRecord::Base belongs_to :organization, inverse_of: :users has_many :moderators, […]

Rails 4在保存时创建关联对象

在保存新主对象后,如何自动创建多个关联对象? 例如 在Rails 4中,我有三个对象: 企业 , 预算和类别 。 #app/models/business.rb class Business < ActiveRecord::Base #attrs id, name has_many :budgets end #app/models/budget.rb class Budget < ActiveRecord::Base #attrs id, business_id, department_id, value belongs_to :business belongs_to :category end #app/models/category.rb class Category < ActiveRecord::Base #attrs id, name has_many :budgets end 当我创建新业务时,在保存新业务之后,我想为每个类别自动创建预算并给它$ 0的值。 这样,当我去展示或编辑新的业务时,它将已经具有相关的类别和预算,然后可以对其进行编辑。 因此,在创建新业务时,将创建多个新预算,每个类别对应一个,每个都具有值0。 我读了这篇文章: Rails 3,如何在创建主记录后添加关联记录(Books,Auto Add BookCharacter) 我想知道我是否应该在Business模型中使用after_create回调,然后在Budgets控制器中存在逻辑(不完全确定如何执行此操作),或者我是否应该在’new’中添加logic_controller.rb的逻辑用类似的东西打电话: […]

Rails – 一个具有两个关联的模型

我有模型Member ,其中包含有关我网站上注册成员的所有信息。 然后我有模型Message ,其中包含2列(实际上3个带有id ): – member_id – message_from 在表中Messages存储用户的ID,如何在一起聊天 – 当成员A向成员B发送消息时,所以在列member_id中保存人A的 ID并进入人B的列message_from ID。 我目前的协会看起来像: class Member < ActiveRecord::Base has_many :messages_from end class Message < ActiveRecord::Base belongs_to :member end 我不知道,当我尝试时,我怎么能得到存储在message_from列中的人的名字 – @member.messages_from.each do |mess_from| ={mess_from.name} 所以我得到错误undefined method “name” for …我怎么能通过存储在message_from列中的ID获取用户的名称? 编辑 – 更新关系: class Member < ActiveRecord::Base has_many :messages end class Message ‘user_id’, :class_name => […]

Rails – 使用序列化属性还是belongs_to关联?

在我的应用程序中,我有以下模型:Job和Worker。 创建作业时,会根据作业的地址为其分配位置属性(作业#位置)。 当工人填写网站的申请表时,他们应该能够指出他们感兴趣的工作地点。不知何故,我将把工人选择的地点与工作地点进行比较,并向表明该地点的工人发送通知,等等 在表单视图中,可能的位置将作为复选框呈现给申请人。 我的问题是如何将此信息存储在数据库中,因为Worker可能有兴趣在多个位置工作。 据我所知,可以序列化一个属性,使其成为一个数组。 那么我应该在Worker上有一个属性(例如Worker#location_preferences),或者我应该创建一个与Worker关联的新模型(LocationPreference),这样一个Worker has_many LocationPreferences和一个LocationPreference belongs_to一个Worker? 这可能需要在表单视图中使用嵌套表单。 上面有一个更好的Rails实践吗?

Rails – 如何在数据库中存储“has_many”复选框关联?

我有表User和表Categories 。 这两个表之间的关系: 用户has_many :categories category belongs_to :user 我想在用户的(标准)编辑页面上显示带有复选框的类别列表。 当这个用户检查一些复选框时,我想保存它们,然后在下次打开页面时显示为已选中。 但是如何在视图中呈现复选框? 以及如何存储用户在数据库中检查的复选框的信息? 我的第一个想法是使用user_id和category_id创建一个类似user_categories的表,但不确定这种方法的效果如何。 现在实施这项任务的最佳方法是什么?

嵌套表单Rails

我有2个型号用户和地址。 class User < ActiveRecord::Base has_many :addresses accepts_nested_attributes_for :addresses end class Address < ActiveRecord::Base belongs_to :user end 我的控制器 def new @user = User.new @user.addresses << Address.new @user.addresses << Address.new end def create @user = User.new(params[:user]) if @user.save #do something else render 'new' end end 而我的观点 Home Work 我的问题是我只获得最后一个州,国家,街道进入参数。 “addresses_attributes”=>{“0″=>{“street”=>”test”, “state”=>”test”,, “country”=>”test”}, “1”=>{“street”=>””, “state”=>””, “country”=>””}} 此外,如果有更好的方法,我会感激任何建议。

rails,activerecord sum然后命令

我有一个属于用户的工作模型和用户has_many工作。 我想创建一个AR查询,计算每个用户的工作日总数,然后按降序排序。 到目前为止我有这个,但是给了我一个错误:(列“Job.id”必须出现在GROUP BY子句中或者用在聚合函数中) @work_days = Job.group(:user).order(‘SUM(total_days)’) 我似乎无法使用.order方法工作 – 是否有我遗漏的东西? 提前致谢!