RailsAdmin - скрытые поля формы и метки

Использование 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 равным текущему_пользователю, а также скрывает form_field (ввод html) из поля зрения, так что пользователь даже не знает, что он устанавливается от его имени.

Однако есть одна небольшая проблема. Хотя я могу скрыть поле form_field, я не могу скрыть связанную с ним метку (т.е. метку с надписью «Пользователь», которая появляется рядом с вводом), что означает, что мои пользователи видят это:

введите здесь описание изображения

Как вы можете видеть, есть метка «Пользователь» с пустым местом рядом с ней и слово «Обязательно» под ней.

Есть ли способ скрыть связанную с вводом метку (а не только сам ввод), чтобы это не сбивало с толку пользователя? Что-то не так с моим кодом?

заранее спасибо


person stephenmurdoch    schedule 07.05.2011    source источник


Ответы (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
person newtriks    schedule 27.10.2011

Я думаю, что нашел рабочее решение:

  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 

Не идеально, но работает

person stephenmurdoch    schedule 07.05.2011