Tag: 模型

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

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

Ruby on Rails:从另一个模型调用实例方法

我有一个Match模型和一个团队模型。 我希望在保存Match后运行实例方法(在Team模型中编写)。 这就是我所拥有的。 team.rb def goals_sum unless goal_count_cache goal_count = a_goals_sum + b_goals_sum update_attribute(:goal_count_cache, goal_count) end goal_count_cache end 它的工作原理。 现在我需要在保存匹配时运行它。 所以我尝试了这个: match.rb after_save :Team.goals_sum after_destroy :Team.goals_sum 它不起作用。 我知道我遗漏了一些基本的东西,但我仍然无法完成它。 有小费吗?

错误:无法强制进入Fixnum

我有以下函数来汇总给定用户的Pack模型中的:amount字段的所有记录: user.rb def total_money_spent_cents amount = self.packs.map(&:amount).sum return amount end 但是,当我使用此function时,我收到以下错误: nil can’t be coerced into Fixnum 有什么建议? 编辑我在测试中仍然遇到有关Fixnum的问题,并在这里打开另一个问题。

Rails:从模型方法访问字段值

刚开始学习Rails(3)。 我正在试图找出如何做一些可能完全无关紧要的事情:从模型中的方法内部访问模型实例的字段的值。 就我而言: def formal_name @title + ” ” + @forename + ” ” + @surname end 所有三个@properties(数据库中表的所有字段)都返回nil 。 他们不应该。 令人难以置信的是, http://guides.rails.info/中没有讨论如何访问字段,谷歌也没有任何内容。 顺便说一句,我来自Django,这个东西很明显。

Rails:attr_accessor在尝试呈现为JSON时不会显示

在我的应用程序中,我有一个模型在下面; class Init < ActiveRecord::Base attr_accessor :clientAvailability attr_accessible :returnCode, :returnMessage, :tokenCode, :updateURL end 在这里,当我稍后添加** attr_accessor **时,当我尝试应用** render json:init **时,即使我将其设置为;它也不显示** clientAvailability **属性; init=Init.new init.clientAvailability=”3″ 当我调试它时,我可以看到它已设置,但是当我尝试将其渲染为json时,它不会简单地显示出来。 可能是我错过的东西?

如何在Rails 2.3.5中从模型中呈现部分

我有一个Rails 2.3.5应用程序,我试图从模型中呈现几个部分(我知道,我知道 – 我不应该)。 我这样做的原因是我将Comet服务器(APE)集成到我的Rails应用程序中,需要根据Model的事件(例如after_create)推出更新。 我试过这样做: ActionView::Base.new(Rails::Configuration.new.view_path).render(:partial => “pages/show”, :locals => {:page => self}) 这允许我渲染不是用户帮助者的简单部分,但是如果我尝试在我的部分中使用link_to,我会收到一条错误说明: undefined method `url_for’ for nil:NilClass 我确保传递给“project_path(project)”的对象不是nil。 我也试过包括: include ActionView::Helpers::UrlHelper include ActionController::UrlWriter 在包含进行上述“render”调用的方法的Module中。 有谁知道如何解决这个问题? 谢谢

Railsvalidation虚拟属性

我这个型号: class Bunny < ActiveRecord::Base attr_accessor :number validates_presence_of :number validates_numericality_of :number end 每当我提交表单来创建此模型时,我都会收到以下错误: 未定义的方法`number_before_type_cast’用于#

从Rails模型中访问current_user?

我正在构建一个基本遵循以下模式的Invoicing应用程序: Users < Clients < Projects < Invoices 现在,为了为每个用户生成自动递增发票号,我将其放入我的Invoice模型中: before_create :create_invoice_number def create_invoice_number val = @current_user.invoices.maximum(:number) self.number = val + 1 end 但是,似乎无法从Rails中的模型中访问current_user变量? 我该怎么做才能解决这个问题?

如何在1个表格中包含2个模型?

一个模型创建:name,:metric(Quantified.rb),另一个创建:result_value,:result_date(Result.rb)。 class Quantified { where(categories: ‘Monthly Average’) } scope :instance, -> { where(categories: ‘One-Time Instance’) } has_many :results CATEGORIES = [‘Monthly Average’, ‘One-Time Instance’] end class Result < ActiveRecord::Base belongs_to :user belongs_to :quantified end 我需要在_form和/或控制器中做什么才能允许用户将他的results_date和results_value(结果_form)添加到相应的名称和指标(quantieds _form)? prohibited this quantified from being saved: Date: [:month, :year], class: ‘date-select’ %> prohibited this result from being saved: Date: […]

使用Rails 3从现有表生成模型

使用Rails 3.2.2和ruby 1.9.3dev和mysql 我是ruby和rails的新手。 我们有一个包含几百个表的现有数据库。 我们想尝试使用rails来查看它是否是PHP和ZendFramework的积极变化。 将数据迁移到另一个数据库不是我们的选择,因为我们当前有几个其他应用程序正在使用此数据库。 我们想将rails项目“附加”到现有数据库。 我正在努力的部分是从我们现有的数据库中生成所有模型。 我看过一些较旧的post谈论一些自动化技术,包括Magic Model Generator 。 虽然其他人谈到没有办法做到这一点,或者你只是手动创建它们。 我没有成功使用Magic Model Generator生成模型(可能只有rails 2?) 很久以前,当我们切换到ZendFramework时,我编写了一个快速脚本来分析数据库并为我们生成所有模型文件。 这似乎是一种常见的情况。 注意:我们使用ID而不是id并且许多都有许多foreign_key关系。 所以我想问一下社区处理这个问题的最佳方法/方法是什么?