如果没有attr_accessor,则选择属性不在模型中

时间:2015-03-13 08:36:56

标签: ruby-on-rails ruby

我试图将一些数据附加到我的表单而不直接链接到我的模型。

我可以使用radio_button进行操作,但不能使用selectcollection_select等)。

这是我的代码:

= form_for @user, url: user_path(@user) do |f| 
  // This is working
  = f.radio_button :my_field_not_in_model, true, checked: true
    | Yes
  = f.radio_button : my_field_not_in_model, false, checked: false
    | No
  br
  // This is not working
  = f.label 'Another user'
  = f.collection_select :reference_user_id, @user.group.users, :id, :email

基本上,在最终更新之前删除此属性之前,我想附加一个引用用户对我的控制器进行特殊分析。每次我需要更多数据在我的控制器上进行特殊处理时,我都不想在我的模型上创建attr_accessor

1 个答案:

答案 0 :(得分:3)

问题源于您使用form_for表单构建器生成选择值。如果您检查docs,您将看到collecion_select期望一个对象,并将返回在所述对象上调用的指定方法中的值作为其值。< / p>

您需要的是常规选择标记

select_tag "reference_user_id", options_from_collection_for_select(@users.group.users, :id, :email)

这应该为您的目的提供正确的HTML。

有关select_tagdocs使用情况的详细信息,请参阅these docs,了解有关options_from_collection_for_select的更多信息。