【问题标题】:How to access a table which created by a new "scaffold" in rails?如何访问由 Rails 中的新“脚手架”创建的表?
【发布时间】:2014-06-12 14:43:54
【问题描述】:

我使用 rails g scaffold 创建了一组新的控制器、模型和视图,它允许用户输入一个 int 数字。他们只能编辑唯一的号码,但不能创建新号码或删除它。

rails g scaffold number numa:integer

我想监控用户输入的内容,比较数字并调用我之前已经创建的另一个控制器中的函数。但是,我对 ruby​​ 上的 Rails 还很陌生,不知道该怎么做?

我很确定用户输入的内容将存储在与新脚手架绑定的表中。该表的名称是“数字”,唯一数字名称的唯一输入框是“numa”。我应该在另一个控制器中做什么(我们称之为“foods_controller.rb”)来访问该号码。也许numbers.numa

【问题讨论】:

    标签: ruby-on-rails ruby database scaffold


    【解决方案1】:

    首先,我建议通过Ruby on Rails guide to ActiveRecord弹出

    为了具体回答您的问题,有几个不同的选项:

    您可以通过模型监控表格内容。 (可能更可取)

    尝试打开 Rails 控制台(rails consolerails cirb),然后输入 Number.all,这将返回存储在表中的所有 Number 记录的列表。还有许多其他查询可以通过这种方式完成;查看ActiveRecord::Base API doc 了解更多信息。

    您可以直接在您创建的数据库表上执行数据库查询。

    编辑:由于您想在另一个控制器中执行此操作,请使用第一种方法,调用 Number.all 以获取存储在数据库中的所有 Number 记录的列表。如果您只想返回一条记录,也可以调用Number.firstNumber.lastNumber.find(<number_id>)

    【讨论】:

    • 非常感谢您的帮助。你的回答对我很有用。但是,我找不到合适的方法来选择表中的变量之一。这是由 rails c 和 Number.all 生成的表的结构: Number Load (0.2ms) SELECT "numbers".* FROM "numbers" => [# "numa") 但失败了。谢谢你的帮助!
    • 获得记录后,您可以像这样从中选择单个字段:Number.first.numa 或者,您可以使用“pluck”,从表中选择单个字段。 Number.pluck(:numa).first
    • 非常感谢您的热心帮助!
    猜你喜欢
    • 2011-10-23
    • 2013-08-23
    • 2016-05-21
    • 2013-09-03
    • 2018-10-02
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多