Tag: 模型

Rails模型中的实例变量

我想在我的Rails模型中初始化一个实例变量,它将包含一个数组,我想在我的模型中的其他方法中访问这个变量。 我试过这个: class Participant < ActiveRecord::Base @possible_statuses = [ 'exists', 'paired', 'quiz_finished', 'quiz_results_seen', 'money_sent' ] def statuses @possible_statuses end 但是当我使用rails console尝试以下操作时: Participant.first.statuses 我回来了nil 🙁 为什么会这样? 有没有办法完成我想要完成的任务?

使用foreign_key和链接表的Rails模型

我正在尝试为rails项目上的ruby创建一个模型,以建立不同单词之间的关系。 可以把它想象成一个字典,其中两个单词之间的“链接”表明它们可以同义使用。 我的数据库看起来像这样: Words —- id Links —– id word1_id word2_id 如何使用链接表在两个单词之间创建关系。 我试图创建模型,但不知道如何使链接表发挥作用: class Word ‘Word’, :foreign_key => ‘word1_id’ end

手动定义getter / setter时如何使用read_attribute(attr_accessor或attr_writers)

我设置了一个search模型,并且要求至少填写一个字段。 我发现了一个有助于validation的问题, Rails:如何要求至少一个字段不为空 。 (我尝试了所有答案,但Voyta似乎是最好的。) validation工作正常,除非我想通过attr_accessor或attr_writer重新定义getter / setter。 (我在表单上有虚拟属性,需要分开validation。)为了弄清问题是什么,我测试了一个常规属性item_length属性。 如果我添加attr_accessor :item_length ,validation将停止工作。 所以,我想问题是如何在不使用点表示法的情况下读取属性的值。 由于validation使用字符串,我无法使用正常的阅读方式。 这是一个片段: if %w(keywords item_length item_length_feet item_length_inches).all?{|attr| read_attribute(attr).blank?} errors.add(:base, “Please fill out at least one field”) end 就像我说的那样,虚拟的attrbutes(length_inches和length_feet)完全不起作用,普通的属性(length)也可以工作,除非我重新定义了getter / setter。

如何计算方法中的方法

如果我们创建一个名为days_left_in_current_level的新方法,那么我们需要在那里放一些,以便我们可以计算current_level中剩余的天数? habit.rb def current_level return 0 unless date_started def committed_wdays committed.map do |day| Date::ABBR_DAYNAMES.index(day.titleize) end end def n_days ((date_started.to_date)..Date.today).count do |date| committed_wdays.include? date.wday end – self.real_missed_days end case n_days # 1 – 6 represent the different levels when 0..9 1 when 10..24 2 when 25..44 3 when 45..69 4 when 70..99 5 else 6 end […]

Rails中的关系类型

嗨,我是非常新的轨道,需要一些帮助,没有什么类似我能找到的,我看着类似线路上的所有轨道演员。 所以我有一个文章模型和用户模型(设计)。 我想用户在Follow Mode或Just Read Later Mode中添加文章。 所以UserArticleAssociation有article_id,user_id和关联类型。 我不明白如何正确实现此function。 我可以做一些黑客来做这些,但我不想。 任何类似的教程都会有很大的帮助。

RAILS:如何在回调中创建新的collection.build?

如何使用其他模型在after_save中创建新记录? 我试过这一行导致“未定义的方法`期刊’为nil:NilClass” 例如 resources :users do resource :profile resources :journals end class User < ActiveRecord::Base has_one :profile has_many :journals end class Profile < ActiveRecord::Base belongs_to :user after_save :create_new_journal_if_none private def create_new_journal_if_none if user.journals.empty? ???? user.journals.build() ???? end end end class Journals < ActiveRecord::Base belong_to :user end

不明确的表格参考

这个问题看起来很简单,但我从未遇到过这样的问题。 以下是设置: Post has_many :reader_links Post has_many :readers, :through => :reader_links 我需要找出是否有读者阅读post。 @post.reader_links.where(‘created_at >= ?’, 45.minutes.ago).any? 效果很好。 @post.readers.where(‘created_at >= ?’, 45.minutes.ago),any? 抛出一个模糊的表列错误,因为create_at列是读取器对象还是reader_link对象是混淆的。 这是因为读者的类实际上是用户。 如何查询45分钟前由reader_links创建的读者? 我正在寻找像… @post.readers.where(‘reader_link.created_at >= ?’, 45.minutes.ago)

Rails:表列返回nil(无响应)

这是我能够解决的先前问题的延续: 参数未正确保存(Rails) 但现在我遇到了一个陌生人的问题。 虽然我可以获取要保存的参数,但是当我尝试引用它时它没有响应。 该模型: # == Schema Information # # Table name: messages # # id :integer not null, primary key # content :text # sender_id :integer # recipient_list :text # created_at :datetime not null # updated_at :datetime not null # class Message < ActiveRecord::Base attr_accessible :content, :sender_id, :recipient_list attr_reader :recipient_list #necessary for jquery-token-fields […]

如何在rails中保存包含其他模型属性的模型?

在我的项目中,我有一个Organization模型和一个Address模型。 以下是模型之间的关联: class Organization < ApplicationRecord has_one :address accepts_nested_attributes_for :address end class Address < ApplicationRecord belongs_to :organization end 我在我的新组织表单中添加了这样的地址属性(form_with用于Organization属性,fields_for用于Address属性): Street number: Street: City: Province: Postal code: 当我试图用他的地址保存组织时,组织被保存,但他的地址不是。 如何保存组织的地址? 这是我的OrganizationController: def new @organization = Organization.new @organization.build_address end def create @organization = Organization.new(organization_params) @organization.save //… end def organization_params params.require(:organization).permit(:organizationName, :email, :webSite, address_attributes:[:streetNumber, :street, :city, :province, :postalCode]) end […]

如何实现具有3个固定分类的jobpostfunction

我想要做的是创建放置模型,用于发布3个固定类别的工作,即实习,公司和自由职业。将有一个安置菜单,将有3个menues作为实习,公司和自由职业者,并根据用户选择,对于这3个类别,将显示相同的职位发布表格以创建职位。 在显示工作岗位时,将根据类别显示不同的视图。 我没有得到我应该如何实现这一点。我是否应该创建位置和类别作为一个不同的模型,并给予关联作为多个类别的位置和属于类别的位置,但如果我这样做,在类别模型我有3固定的选择,我不会接受用户的选择,那么我如何在模型中添加这3个选项将被修复并按类别添加它们的工作岗位? 我该如何实现这个展示位置?