0

我试图在我的测试中使用它

<%= f.input :user, :label => 'Usuario: ' , :as => :select , :collection => @users  , :include_blank => true %>

并没有工作....

但是当切换到:

<%= f.input :user_id, :label => 'Usuario: ' , :as => :select,      :collection => Hash[@users.map{|b| [b.nickname,b.id]}] , :include_blank => true%>

它有效吗?有谁知道为什么?

我也把它们放在代码上:

<%= f.input :user, :label => 'Usuario: ' , :as => :select , :collection => @users  , :include_blank => true %>

<%= f.input :user_id, :label => 'Usuario: ' , :as => :select,      :collection => Hash[@users.map{|b| [b.nickname,b.id]}] , :include_blank => true%>

但是第一个没有用(我只是想看看@user 变量中是否有错误)..

与模型有关吗?有谁知道为什么?

4

1 回答 1

0

来自 formtastic 文档:许多输入提供了一组可供选择的选项(如:select:radio:check_boxes:boolean)。在很多情况下,Formtastic 可以通过模型关联找到选项,但如果您想使用自己的一组选项,:collection选项就是您想要的。你可以传入一个对象数组、一个字符串数组、一个哈希......

您可以查看文档

collection期望收到一个 hash 或 array ,但是当你传递@user你的模型的一个实例变量时,这将不起作用。

于 2013-09-10T21:43:48.750 回答