ruby-on-rails - 在 Ruby on Rails 的 View 模板中从数据库中读取日期是否可以?

标签 ruby-on-rails ruby

我正在重温 MVC 和 Ruby on Rails 的基础知识。我正在查看我的代码,发现我在我的编辑用户配置文件 View 中使用了这个选择标签。

          <div class="row">
            <div class="panel panel-primary">

              <div class="panel-heading">
                <%= f.label :country_id, "From*" %>
              </div>  

              <div class="panel-body">   
                <%= f.select :country_id, Country.order(:name).collect {|p| [ p.name, p.id ] }, {}, { :class => 'form-control' } %>
              </div>
            </div>
          </div> 

我正在访问 View 中的 Country 表。我很确定不应该这样做,但不知何故它起作用了。为什么它有效?正确的做法是什么?
谢谢。

最佳答案

您所拥有的没有理由不起作用。请记住, View 模板是一个“嵌入式 ruby​​”文件。它在 HTML 模板中嵌入了 Ruby。当 Controller “呈现” View 时,其中的所有代码都会被执行,并且其 Ruby 代码生成的任何输出都将成为 HTMl 文档的一部分。在这种情况下,Ruby 代码生成的输出是一堆 HTML 标签和国家/地区名称和 ID。

为了避免在 View 中出现这种逻辑,您可以将它放在 Controller 中并将其保存到一个实例变量(即类似于 @select_vals 的东西),然后在 View 模板中引用该变量。

关于ruby-on-rails - 在 Ruby on Rails 的 View 模板中从数据库中读取日期是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648246/

相关文章:

ruby - 逗号有时不是多余的吗?

ruby - 如何在 Ruby 中一次读取一个文件字节?

ruby-on-rails - 从哈希数组返回特定​​值 - JSON

ruby-on-rails - 加载错误 : Could not open library 'lzo2' : lzo2: cannot open shared object file: No such file or directory

ruby-on-rails - rails 4 : How can I decouple logic in this long controller method?

ruby-on-rails - 如何在 ruby​​/rails 中将数据附加到 json?

ruby-on-rails - Rails 3 : Polymorphic liking of Entities by User, 怎么办?

ruby - Chef 独奏 : Installing build-essential recipe before postgresql

ruby-on-rails - Capistrano 3 进程失败

ruby-on-rails - RSpec 测试所有模型是否respond_to 属性