2011-05-07 80 views
1

使用RailsAdmin。我有一个Post模型和一个用户模型。每篇文章都属于一位用户。RailsAdmin - 隐藏表单域和标签

我用下面的代码来获取RailsAdmin处理协会为我和自动设置USER_ID创建帖子时:

config.model Post do 
    edit do 
     field :user_id do 
     # use a form_field instead of the default drop-down 
     partial :form_field 
     # hide the input 
     view_helper :hidden_field 
     # set the value to current_user.id 
     def value 
      bindings[:view]._current_user.id 
     end 
     end 
    end 
    end 

此代码的工作,它设置USER_ID到了CURRENT_USER和它也从视图中隐藏了form_field(html输入),以至于用户甚至不知道它正在为它们设置。

虽然有一个小问题。虽然我能够隐藏form_field,我不能隐藏它相关联的标签(即读入后面会出现一个输入“用户”标签) - 这意味着我的用户看到这一点:

enter image description here

如您所见,有一个标签“用户”,旁边有一个空白空间,下面是“必需”一词。

是否有反正隐藏输入的相关标签(而不仅仅是输入本身),以便它不会让用户感到困惑?我的代码有问题吗?

在此先感谢

回答

1

我想我已经找到了有效的解决方案:

field :user_id do 
    view_helper :hidden_field 

    # I added these next two lines to solve this 
    label "" 
    help "" 

    partial :form_field 
    def value 
     bindings[:view]._current_user.id 
    end 
    end 

不理想,但它的工作原理

2

我也遇到同样的障碍,经过一番试错误(以及来自rails_admin组的提示)到达了轻微的替代方案:

config.model Library do 
    edit do 
    field :user_id do 
     # This hides the field label 
     label :hidden => true 
     # This hides the help field *yuk* 
     help "" 
     def value 
     bindings[:view]._current_user.id 
     end 
     # This hides the field input 
     view_helper do 
     :hidden_field 
     end 
    end 
    end 
    field :name 
end