我正在重温 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/