【发布时间】:2015-10-24 10:47:15
【问题描述】:
我在 github 存储库中找到了这段代码,位于 https://github.com/heroku/hstore_example 。非常感谢 Richard Schneeman,这是我在 Railspeak 中找到的唯一一个显示语法的示例,用于使用 html.erb 接受用户对 hstore 数据的输入。其他人只是展示了如何在控制台中使用它(我认为我的用户不会很快启动命令行窗口)。
我有两个问题:1、为什么“key”这个词在第5行重复了两次? 2,在底部,在锚标记之后,它说 herf="#"。假设这是一个错字是否安全,他的意思是“href”?该链接没有指向任何地方,并且该类是此处列出的代码下方的脚本使用的 JS 选择器。是否故意拼错,以防止采取行动?
<%= f.fields_for :data, @product.data do |d| %>
<% @product.data.try(:each) do |key, value| %>
<div class="row">
<p class='span3'>
<%= text_field_tag key, key, :class => 'text_field dynamicAttributeName' %>
</p>
<p class='span3'>
<%= d.text_field key, :class => 'text_field', :value => value %>
</p>
<p class='span1'>
<a herf='#' class='btn removeRow'>X</a>
</p>
</div>
<% end %>
<%- end -%>
同样在这个应用程序(同一个 repo)中,我们找到了这个代码:
<%= form_tag hstore_queries_path, :method => :get, :remote => true, :id => 'hstore_query' do %>
<p>Find:</p>
<%= select_tag 'query_type', "<option value='key_eql'>key equal to ? </option>
<option value='key_value_eql'>key equal to value</option>
<option value='key_not_value'>key not equal to value</option>
<option value='key_like_value'>key like value</option>".html_safe %>
<%= text_field_tag :key , nil, :placeholder => 'Key' %>
<%= text_field_tag :value , nil, :placeholder => 'Value', :class => 'hide' %>
<br />
<%= submit_tag "Run Query", :class => 'btn btn-primary' %>
<%- end -%>
它来自用于为数据库创建搜索工具的部分。在选择框代码下方,还有另一个 text_field 标记——这一次单词 :key 表示为一个符号。我可以看到在上面的代码块中,关键是一个迭代器变量(虽然我不知道它为什么会出现两次,我也不知道它们中的哪个指的是迭代器)。在较低的部分中,我没有看到对模型“产品”或数据库字段“数据”的任何引用。 " 它是 db 表中唯一的 hstore,但它至少不需要在某个地方引用吗? :Key 本身不是字段,:value 也不是——对不起,我是新手,但如何Rails 知道引用的是哪个 db 字段吗?它不在 partial 中,也没有通过触发它的 render 命令传递。
【问题讨论】:
标签: javascript ruby-on-rails postgresql hstore