问题标签 [ruby-on-rails]

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 投票
10 回答
44349 浏览

ruby-on-rails - Rails 模型、视图、控制器和助手:什么去哪里?

在 Ruby on Rails 开发(或一般的 MVC)中,我应该遵循什么快速规则来放置逻辑。

请给予肯定的回答——Do put this here,而不是Don't put that there

0 投票
7 回答
8587 浏览

ruby-on-rails - 如何在 Ruby on Rails 执行期间确定控制器变量的值?

在执行期间确定控制器变量值的最佳方法是什么?

例如,有没有一种方法可以在代码中插入中断,并导致变量的值输出到屏幕(或日志)?

0 投票
3 回答
1602 浏览

javascript - 如何在 onClick 事件中创建循环?

我想编写一个onClick多次提交表单的事件,遍历多选字段中的选定项目,每个提交一次。

如何编码循环?

我正在使用 Ruby on Rails 并remote_function()用于为 ajax 调用生成 JavaScript。

0 投票
12 回答
17514 浏览

ruby-on-rails - Ruby on Rails 有没有好的管理生成器?

我目前的项目是在 Rails 中。来自 Symfony (PHP) 和 Django (Python) 背景,他们都有优秀的管理生成器。似乎在 Rails 中缺少这一点。

对于那些不熟悉 Symfony 或 Django 的人,它们都允许您在模型周围指定一些元数据,以自动(动态)生成管理界面来执行常见的 CRUD 操作。只需几个命令或几行代码,您就可以创建一个完整的 Intranet。它们外观漂亮,可扩展性足以满足 99% 的管理员需求。

我一直在为 Rails 寻找类似的东西,但所有项目要么没有活动,要么早就死了。除了脚手架之外,还有什么可以为 Rails 应用程序生成 Intranet/admin 站点吗?

0 投票
4 回答
1256 浏览

ruby-on-rails - Rails 模型验证器破坏了早期的迁移

我在 Rails 应用程序中有一系列迁移,其中包括以下步骤:

  1. 创建“用户”模型的基本版本
  2. 创建此模型的实例 - 我的系统中至少需要一个初始用户,以便您可以登录并开始使用它
  3. 更新“用户”模型以添加新字段/列。

现在我在这个新字段/列上使用“validates_inclusion_of”。这在我最初的开发机器上运行良好,它已经有一个应用了这些迁移的数据库。但是,如果我转到一台新机器并运行所有迁移,则第 2 步将失败,因为 validates_inclusion_of 失败,因为尚未将迁移 3 中的字段添加到模型类中。

作为一种解决方法,我可以注释掉“validates_...”行,运行迁移,然后取消注释,但这并不好。

最好重新排序我的迁移,以便在添加所有列之后最后创建用户(步骤 2)。

不过,我是一个 Rails 新手,所以我想我会问处理这种情况的首选方法是什么:)

0 投票
13 回答
34989 浏览

ruby-on-rails - 如何(以及是否)使用初始数据填充 Rails 应用程序

我有一个 Rails 应用程序,用户必须在其中登录。因此,为了使应用程序可用,系统中必须有一个初始用户供第一个人登录(然后他们可以创建后续用户)。到目前为止,我已经使用迁移将特殊用户添加到数据库中。

在问了这个问题之后,似乎我应该使用 db:schema:load,而不是运行迁移,在新的开发机器上设置新的数据库。不幸的是,这似乎不包括插入数据的迁移,只包括那些设置表、键等的迁移。

我的问题是,处理这种情况的最佳方法是什么:

  1. 有没有办法让 d:s:l 包含数据插入迁移?
  2. 我不应该使用迁移以这种方式插入数据吗?
  3. 我不应该用数据预先填充数据库吗?我是否应该更新应用程序代码,以便它能够优雅地处理没有用户的情况,并允许从应用程序内实时创建初始用户帐户?
  4. 还有其他选择吗?:)
0 投票
7 回答
4851 浏览

ruby-on-rails - Ruby on Rails 中模型设计的最佳实践

RoR 教程为每个表假设一个模型以供 ORM 工作。我的数据库模式有大约 70 个表,在概念上分为 5 组功能(例如,任何给定的表都存在于一个且只有一个功能组中,并且不同组的表之间的关系被最小化。)所以:我应该为每个概念组设计一个模型吗? ,或者我应该简单地拥有 70 个 Rails 模型并保留分组“概念”?谢谢!

0 投票
4 回答
2679 浏览

ruby-on-rails - 在 Rails 应用程序中导入 XML 文件,UTF-16 编码问题

我正在尝试通过 Ruby on Rails 应用程序中的网页导入 XML 文件,代码 ruby​​ 视图代码如下(我已删除 HTML 布局标签以使阅读代码更容易)

生成以下 HTML 表单

'fmfiles_controller' 中的 Form_Import_DDR 方法是使用 REXML 读取 XML 文档的繁重工作的代码。代码如下

它继续读取所有不同的 XML 元素。

我在 Mac OS X 10.5.4 的开发环境中使用 Rails 2.1.0 和 Mongrel 1.1.5,站点数据库和浏览器在同一台机器上。

我的问题是这个。当读取字符编码为 UTF-8 的 XML 文档时,整个过程工作正常,但当 XML 文件为 UTF-16 时失败,有谁知道为什么会发生这种情况以及如何停止?

我在下面包含了来自调试器控制台的错误输出,大约需要 5 分钟才能获得此输出,并且浏览器在以下输出之前超时,并显示“无法打开页面”

0 投票
5 回答
859 浏览

ruby-on-rails - 为了瘦控制器,rails 模型是否应该与其他模型有关?

我到处都读到业务逻辑属于模型而不是控制器,但限制在哪里?我在玩个人会计应用程序。

创建操作时,仅当创建相应条目并将其链接到帐户以使操作平衡时才有效,例如购买 6 件装:

现在在基本操作的情况下向用户显示的表单被简化以隐藏条目详细信息,帐户是根据用户请求的操作类型在 5 个默认值中选择的(初始化帐户 -> 净值帐户,花费资产 - >费用,赚取收入->资产,借入负债->资产,支付债务资产->负债......)我想要从默认值创建的条目。

我还希望能够创建更复杂的操作(超过 2 个条目)。对于第二个用例,我将有一个不同的形式,其中暴露了额外的复杂性。第二个用例阻止我在操作中包含借方和贷方字段并摆脱输入链接。

哪种形式最好?像我现在一样在 SimpleOperationController 中使用上面的代码,或者在 Operation 类上定义一个新方法,这样我就可以调用 Operation.new_simple_operation(params[:operation])

从 Operation 类中实际创建和操作 Entry 对象不是破坏了关注点分离吗?

我不是在寻求关于我扭曲的会计原则的建议 :)

编辑——看来我表达得不太清楚。我不太关心验证。我更关心创建逻辑代码应该去哪里:

假设控制器上的操作称为支出,当使用支出时,参数哈希将包含:金额、日期、描述。借方和贷方账户将派生自被调用的操作,但随后我必须创建所有对象。拥有会不会更好

或在 Operation 上创建一个方法,使上面看起来像

这肯定会提供更薄的控制器和更胖的模型,但随后模型将创建和存储其他模型的实例,这就是我的问题所在。

0 投票
4 回答
12088 浏览

ruby-on-rails - Rails, Restful Authentication & RSpec - 如何测试需要身份验证的新模型

我使用Bort创建了一个学习应用程序,它是一个包含 Restful Authentication 和 RSpec 的基础应用程序。我已经启动并运行它并添加了一个新对象,该对象需要用户登录才能执行任何操作(before_filter :login_required在控制器中)。[编辑:我还应该提到has_many新类的用户并且只有用户应该能够看到它。]

我使用 Rspec 的生成器创建了新的模型/控制器,这些生成器创建了许多默认测试。如果没有before_filter但有几个失败,它们都会通过,正如预期的那样,一旦before_filter到位。

如何让生成的测试像有/没有登录用户一样运行?我是否需要一整批未登录的匹配 - 重定向测试?我认为这是某种模拟或固定技术,但我是 RSpec 的新手,有点飘忽不定。好的 RSpec 教程链接也将不胜感激。