RailsAdmin - 隐藏的表单字段和标签

时间:2011-05-07 21:29:07

标签: ruby-on-rails rails-admin

使用RailsAdmin。我有一个Post模型和一个User模型。每个帖子都属于一个用户。

我使用以下代码让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,但我无法隐藏它的相关标签(即输入旁边显示“User”的标签) - 这意味着我的用户会看到:

enter image description here

正如您所看到的,有一个标签“User”,旁边有一个空白区域,下面有“Required”字样。

无论如何都要隐藏输入的相关标签(而不仅仅是输入本身),以免它对用户造成混淆?我的代码有问题吗?

提前致谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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 :(得分:0)

任何有此问题的人的更新。请看这个链接:https://github.com/sferik/rails_admin/wiki/How-to-set-default-values