Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 具有多个参数的自定义Formtastic控件_Ruby On Rails_Ruby_Forms_Input_Formtastic - Fatal编程技术网

Ruby on rails 具有多个参数的自定义Formtastic控件

Ruby on rails 具有多个参数的自定义Formtastic控件,ruby-on-rails,ruby,forms,input,formtastic,Ruby On Rails,Ruby,Forms,Input,Formtastic,我正在尝试为Formtastic构建一个自定义控件,该控件采用纬度和经度,但是,我不确定如何通过传递方法名。理想情况下,我会在块的语义形式中包含以下内容: f.input :latitude, :longitude, :as => :location 我还尝试使用数组传递: f.input [:latitude, :longitude], :as => :location 但在这两种情况下,这都失败了——第一个是参数数量,第二个是第一个参数不是符号 有没有办法将两个方法传递到我缺

我正在尝试为Formtastic构建一个自定义控件,该控件采用纬度和经度,但是,我不确定如何通过传递方法名。理想情况下,我会在块的语义形式中包含以下内容:

f.input :latitude, :longitude, :as => :location
我还尝试使用数组传递:

f.input [:latitude, :longitude], :as => :location
但在这两种情况下,这都失败了——第一个是参数数量,第二个是第一个参数不是符号


有没有办法将两个方法传递到我缺少的输入中?

不能将多个方法传递到一个输入中。你能做的就是在你的模型上有一个名为,呃,
lat\u long
或类似的访问器,它可以返回一个字符串或数组,或者任何你的位置输入可以识别并知道如何处理的格式。

好的,我已经通过写来解决这个问题

我添加了一个multi_输入函数,它可以接受任意数量的参数和一个(可选)选项散列。我还添加了一个map_输入类型,用于输出map控件和JS(框架无关)

以上链接中有更多详细信息。

感谢Justin(您的回答和Formtastic:D)-我一直在考虑这个问题,我认为通过输入可能是错误的做法-如果模型需要提供查看内容的特定方法,它会破坏封装。据我所知,我最好在SemanticFormBuilder中创建一个类似于“输入”和“提交”按钮的新方法——也许是“多输入”?