【发布时间】:2011-07-31 19:13:20
【问题描述】:
我在使用 formtastic 时遇到了困难。我将首先尝试尽可能地勾勒出情况。
我有一个名为onlinescore 的模型,它具有publisher、id 和其他一些基本属性。然而,它的一个属性是一个带有urls 的数组。那些urls 是具有如下内容的哈希:
{"url" => "http://www.example.com", "description" => "blabla"}
所以数组看起来像这样:
[{"url" => "http://www.example0.com", "description" => "blabla0"},
{"url" => "http://www.example1.com", "description" => "blabla1"},
{"url" => "http://www.example2.com", "description" => "blabla2"}]
我现在正在制作一个表单来创建一个新的onlinescore,为此我需要一种方法来收集该数组的输入。我希望有 2 个字段(“url”和“description”)以某种方式映射到 urls 数组中。一旦可行,我希望用户能够一次添加多个 url,例如使用“添加新 url”按钮生成另外 2 个这些字段。
我已经尝试通过某些方式来实现这一点,例如:
#rest of form
<% @onlinescore.url.each do |link| %>
<% form.inputs :for => link do |urls| %>
<%= urls.input :url, :as => :url %>
<%= urls.input :description, :as => :string %>
<% end %>
<% end %>
#rest of form
给出错误:
Hash:Class 的未定义方法“model_name”
我还尝试定义一个新的输入类型 :score_url 但我也没有走得太远,因为我需要一个包含 2 个字段的元组,而不是一个,而且我还没有找到一种方法来做到这一点。我查看了没有模型的表单,但我认为这也不是我需要的......
有人知道怎么做吗?
【问题讨论】:
标签: ruby-on-rails arrays ruby-on-rails-3 hash formtastic