Rails text_field_tag 中的选项标签令人困惑
Rails option tags in text_field_tag confusing
我在 github 存储库中找到了这段代码,位于
https://github.com/heroku/hstore_example。非常感谢 Richard Schneeman 提供了我在 Railspeak 中找到的唯一一个显示语法的示例,用于使用 html.erb 接受 hstore 数据的用户输入。其他人只是展示如何在控制台中使用它(我认为我的用户不会很快启动命令行 window)。
我有两个问题:1,为什么"key"这个词在第5行重复了两次? 2,在底部,在锚标签之后,它说 herf="#"。假设这是一个错字是否安全,他的意思是 "href?" link 不会导致任何地方,而 class 是一个 JS select 或由下面的脚本使用此处列出的代码。是否故意拼写错误以阻止操作?
<%= 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 -%>
同样在此应用程序(相同的回购协议)中,我们找到了这段代码:
<%= 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 -%>
它来自用于为数据库创建搜索工具的部分。在 select 框代码下方,还有另一个 text_field 标记——这次单词 :key 表示为一个符号。我可以看到在上面的代码块中,键是一个迭代器变量(虽然我不知道为什么它会出现两次,而且我也不知道它们中的哪一个指的是迭代器)。在较低的块中,我没有看到对模型 "products," 或数据库字段“data.
“它是数据库 table 中唯一的 hstore,但至少需要在某处引用它吗?:Key 本身不是一个字段,:value 也不是——抱歉,我是新手,但是 Rails 怎么知道引用了哪个数据库字段?它在部分中没有任何地方,也没有通过触发它的渲染命令传递。
1, why is the word "key" repeated twice in the 5th line?
也就是将变量key
的值传递给text_field_tag
的前两个参数。这些是 name
和 value
参数。 key
变量在第 2 行定义。
http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag
2, at the bottom, after the anchor tag, it says herf="#". Is it safe to assume that's a typo, and he meant "href?"
是的,那只是一个错字。
我在 github 存储库中找到了这段代码,位于 https://github.com/heroku/hstore_example。非常感谢 Richard Schneeman 提供了我在 Railspeak 中找到的唯一一个显示语法的示例,用于使用 html.erb 接受 hstore 数据的用户输入。其他人只是展示如何在控制台中使用它(我认为我的用户不会很快启动命令行 window)。
我有两个问题:1,为什么"key"这个词在第5行重复了两次? 2,在底部,在锚标签之后,它说 herf="#"。假设这是一个错字是否安全,他的意思是 "href?" link 不会导致任何地方,而 class 是一个 JS select 或由下面的脚本使用此处列出的代码。是否故意拼写错误以阻止操作?
<%= 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 -%>
同样在此应用程序(相同的回购协议)中,我们找到了这段代码:
<%= 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 -%>
它来自用于为数据库创建搜索工具的部分。在 select 框代码下方,还有另一个 text_field 标记——这次单词 :key 表示为一个符号。我可以看到在上面的代码块中,键是一个迭代器变量(虽然我不知道为什么它会出现两次,而且我也不知道它们中的哪一个指的是迭代器)。在较低的块中,我没有看到对模型 "products," 或数据库字段“data. “它是数据库 table 中唯一的 hstore,但至少需要在某处引用它吗?:Key 本身不是一个字段,:value 也不是——抱歉,我是新手,但是 Rails 怎么知道引用了哪个数据库字段?它在部分中没有任何地方,也没有通过触发它的渲染命令传递。
1, why is the word "key" repeated twice in the 5th line?
也就是将变量key
的值传递给text_field_tag
的前两个参数。这些是 name
和 value
参数。 key
变量在第 2 行定义。
http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag
2, at the bottom, after the anchor tag, it says herf="#". Is it safe to assume that's a typo, and he meant "href?"
是的,那只是一个错字。