如何使用f.select获取静态哈希值
How to use f.select for static hash value?
如何使用f.select标签来收集静态哈希值
class ReceiptPrinter
RECEIPT_PRINTER_TYPES ={
0=> "Normal",
1=> "Dot Matrix",
2=> "Thermal",
}
def initialize(options={})
@receipt_printer_type=options[:receipt_printer_type] || DEFAULT_VALUES[:ReceiptPrinterType]
@receipt_printer_header_height=options[:receipt_printer_header_height]|| DEFAULT_VALUES[:ReceiptPrinterHeaderHeight]
@receipt_printer_header_type=options[:receipt_printer_header_type]|| DEFAULT_VALUES[:ReceiptPrinterHeaderType]
@receipt_printer_template=options[:receipt_printer_template]|| DEFAULT_VALUES[:ReceiptPrinterTemplate]
# define_methods()
end
end
在我的视图页,我使用select选项
<% form_for @receipt_printer, :url => { :action => "fees_receipt_settings" } do |f| %>
<%= f.select("receipt_printer_template", @settings.map{| item| [item[0],item[1].to_i]},{},{:onchange => "set_template(this.value)"} ) %>
<% end %>
我得到错误的参数数错误
您可以尝试使用rails的options_for_select
,
<%= f.select :receipt_printer_template",options_for_select(@settings.map{ |item| [item[0], item[1]],{},{:onchange => "set_template(this.value)"} ) %>
这里是参考
回答 。
由于@settings
只是一个简单的散列,您不必使用map
。select
表单帮助器应该如下所示:
<%= f.select :receipt_printer_template, @settings, {}, {onchange: "set_template(this.value)"} %>
提出重构
如果你坚持使用map
,我建议稍微重构一下代码,以防止你的视图被应用程序逻辑淹没,比如:
# app/helpers/receipt_helper.rb
def settings_for_select
@settings.map{ |item| [item[0],item[1].to_i] }
end
# your form view
<%= f.select :receipt_printer_template, settings_for_select, {}, {onchange: "set_template(this.value)"} %>
应该已经有一点帮助了,还要注意new
哈希语法的使用,它提供了一个更干净的API。
相关文章:
- 在Javascript中实现对哈希值的暴力攻击
- 用户单击带有哈希值的链接以访问该页面,如果禁用Javascript会发生什么情况
- 要发送到控制器的 HREF 链接中的哈希值
- 使用 JavaScript 计算 Blob 的哈希值
- JavaScript 文件哈希值与文件的一部分一起生成
- JavaScript 隔离哈希值
- JavaScript 获取以前的哈希值
- 设置使用 window.open() 打开的空白页的哈希值
- Chrome 不返回哈希值
- Javascript 使用哈希值重新加载页面
- 为什么从其他网络返回会保留最后一个哈希值,同时显示第一个哈希值的内容
- 来自 Javascript 和 PHP 的不同哈希值
- 使用Javascript从url中获取空哈希值
- 如何使用JS重定向到具有哈希值的引用URL
- 单击一页滚动菜单时更改URL哈希值
- 是否可以在Mustache中基于哈希值切换模板部分
- 哈希值和后退/下一步按钮
- javascript哈希值验证
- 返回静态函数的哈希值为空对象
- 如何使用f.select获取静态哈希值