rails上的select_tag中的ArgumentError

时间:2018-10-17 08:06:02

标签: ruby-on-rails ruby-on-rails-5

我正在尝试在Rails的表单内创建一个select_tag,但是当它不起作用时,它向我显示以下错误:wrong number of arguments (given 4, expected 1..3)我要做的是用html属性和提示实现select。方法cargarMaterias,搜索数据库并返回一个元素数组,其当前印象如下:

["1-Sistemas de Informacion", "2-Programacion", "3-Matematicas", "4-Ingenieria Web"]

哦,我忘了,selected_tag的实现如下:

<%= select_tag :codigo_materia, Subject.cargarMaterias,{ prompt: "Seleccione la materia"}, {id: "EditboxCodigoMatHistMat", class: "EditBox"} %>

我已经做了几个小时的相同的事情,但是我仍然不能解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:2)

  

select_tag(name,option_tags = nil,options = {})公共

您应按以下方式重写select_tag

<%= select_tag :codigo_materia, Subject.cargarMaterias, { prompt: "Seleccione la materia", id: "EditboxCodigoMatHistMat", class: "EditBox"} %>

optionshtml_options都应作为最后一个论点去到select_tag。换句话说,任何其他标准 HTML 密钥也应作为options传递。

进一步简化,可以将其写为

<%= select_tag :codigo_materia, Subject.cargarMaterias, prompt: "Seleccione la materia", id: "EditboxCodigoMatHistMat", class: "EditBox" %>

注意:

您对option_tags的值是有缺陷的。应该像这样将其作为container传递给options_for_select

<%= select_tag :codigo_materia, options_for_select(Subject.cargarMaterias), prompt: "Seleccione la materia", id: "EditboxCodigoMatHistMat", class: "EditBox" %>