问题标签 [rails-models]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1478 浏览

ruby-on-rails - 验证模型时出现重复的错误消息

模型验证错误消息怎么可能在 ruby​​ on rails 应用程序中重复?

0 投票
4 回答
3351 浏览

ruby-on-rails - Rails 中只有一个模型实例

我正在开发我的第一个 Rails 应用程序。它需要存储有关将出现在每个页面上的单个广告的一些信息。管理员只需要能够设置 URL、标题和图像。显然,我只需要这个广告对象的一个​​实例。

我创建了一个从 ActiveRecod::Base 继承的模型,但这似乎是错误的做法,因为它被配置为在数据库表中保存多个广告。

对我来说最好的方法是什么?模型和控制器应该是什么样的?

在此先感谢,阿维

0 投票
3 回答
7625 浏览

ruby-on-rails - has_one 和 has_many 在同一模型中。轨道如何跟踪它们?

即使它正常工作,我也对它如何工作感到有些困惑。我有一个模型与同一个模型有两个关联。

公司有一个老板,公司有很多员工的类用户。

这是我的公司模型:

这是我的用户模型:

现在假设我有这家公司的 3 名员工,包括所有者。当我第一次创建公司时,我将所有者设置为 ID 为 1 的员工,另外两个 (2,3) 通过设置其 company_id (user.company=company) 添加到员工列表中。这三个都将他们的 company_id 设置为我们可以假设为 1 的公司 ID

当我询问 company.owner 时,我得到了正确的用户,当我询问 company.employee 时,我得到了所有三个。

如果我将所有者更改为用户 2,它会通过将其 company_id 设置为 nil 来自动从员工中删除用户 1。这很好,如果我将他添加为简单的员工,一切仍然很好。

rails 怎么知道哪个是哪个?我的意思是它如何知道员工是所有者而不仅仅是员工?架构中的任何内容都没有定义这一点。

我有一种感觉我应该扭转所有者关联并使公司属于用户。

0 投票
1 回答
69 浏览

sql - 将重新定义的 SQL 数据从旧应用程序导入新应用程序

我几乎完成了将我的 Symfony(在 mounth 中留下了一点不好的味道)应用程序重写(带有一些新功能)到 Rails 中。我需要将一些数据从旧应用程序导入到新的 Rails 应用程序中。

问题是架构发生了巨大变化,应该更新一些外键值

我想知道是否有一些应用程序可以帮助我重新定义导入数据,或者我应该打开 phpMyAdmin,花一些时间编辑数据库并在准备好的数据库上运行 Rails?(在我看来这不是完成这项工作的最佳方式)

0 投票
3 回答
57099 浏览

ruby-on-rails - Rails has_one :通过关联

Rails 有一个has_one :through关联,它通过第二个模型帮助建立与第三个模型的一对一关联。除了建立快捷方式关联之外,它的真正用途是什么,否则这将是一个额外的步骤。

以 Rails指南中的示例为例:

可能允许我们做类似的事情:

否则将达到:

如果它只是为了更简单的访问,那么从技术上讲,可能会有一个一对一的关联,将一个模型与某个通过 n-1 个模型的第 n 个模型连接起来,以便于访问。除了快捷方式之外,我还缺少其他什么吗?

0 投票
2 回答
1794 浏览

ruby-on-rails - Ruby On Rails - 如何获取对象方法调用者

让我解释一下我的问题:

我有 2 个模型:

有一个用户实例为@user,你可以检查 is_contact? 像这样:

这很好用,我的问题是我想在 is_contact 中访问@user 的属性?联系方式。

这可能吗?

谢谢大家。

0 投票
2 回答
312 浏览

ruby - 项目-项目关系的 Rails 模型关联?

寻找有关实施此方案的最佳方法的一些指导:

我有一个项目表(产品),并希望支持交叉销售/追加销售/补充项目的能力。所以这里有一个项目到项目的关系。在这个连接表中,我需要包括键之外的其他属性,例如项目之间的 sales_relation(例如,交叉、向上、补充、替代等)。

如何设置模型关联?

0 投票
6 回答
12099 浏览

html - 在 Rails 中,我应该如何为任务应用程序实现状态字段 - 整数或枚举?

对于 Rails 3.0 Todo 应用程序,我有一个带有Status字段的 Tasks 模型。存储状态字段数据(字段类型)并仍然在视图(HTML 表)中显示人类可读版本的最佳方式是什么?状态可以是:

0 = 正常
1 = 活动
2 = 完成

现在我有这个:

Rails 架构在这里:

create_table "tasks", :force => true do |t|
t.integer "状态", :limit => 1, :default => 0, :null => false

Rails 模型在这里:

导轨在这里查看:

要求

  1. 将任务的状态存储在数据库中,以便值易于本地化,即我不确定是否要将“正常”、“活动”、“完成”存储为字符串字段。

  2. 解决方案必须适用于 Rails 3.0。

问题:

  1. 我应该将该字段存储为整数(见上文)吗?如果是这样,我如何在我的 Rails 视图中的 HTML 表格中显示正确的人类可读状态,例如在 HTML 表格中显示“活动”而不是“1”。

  2. 我应该使用枚举吗?如果是这样,这以后容易本地化吗?

  3. 我应该使用直字符串,例如“Normal”、“Active”、“Completed”

  4. 你能提供一个视图助手、控制器或视图代码的快速代码示例来完成这项工作吗?

0 投票
2 回答
244 浏览

ruby-on-rails - 为什么我的模型在错误的时间触发验证?

在我的edit行动中,我employees_controller有这行代码:

Address如果没有,它应该添加一个空白,这样它将显示在我的编辑 erb 文件中。这样,如果没有与该员工关联的地址,他们将在编辑此记录时强制添加一个。

有一个像这样的多态关联:Person <- User <- Employee并且与Person具有多对多关系Address。该声明如下所示:

代码在第 70 行失败employees_controller.rb

注意它的调用方式save?为什么要这样做?

0 投票
5 回答
356 浏览

ruby-on-rails - 如何在 ruby​​ 模型中设置默认属性

我有一个模型User,当我创建一个模型时,我想务实地设置一些 API 密钥,而不是什么,特别是:
@user.apikey = Digest::MD5.hexdigest(BCrypt::Password.create("jibberish").to_s)

我希望能够运行User.create!(:email=>"something@test.com")并让它创建一个具有随机生成的 API 密钥和秘密的用户。

我目前正在控制器中执行此操作,但是当我尝试将默认用户添加到seeds.rb文件时,我收到 SQL 错误(说我的 apikey 为空)。

我尝试覆盖save定义,但是当我更新模型时这似乎会导致问题,因为它会覆盖这些值。我尝试覆盖initialize定义,但那是返回 anil:NilClass并破坏事物。

有一个更好的方法吗?