2

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のIDに設定します。また、form_field(html入力)を非表示にして、ユーザーが自分に代わって設定されていることに気付かないようにします。

ただし、小さな問題が1つあります。form_fieldを非表示にすることはできますが、関連付けられたラベル(つまり、入力の横に表示される「User」と表示されるラベル)を非表示にすることはできません。つまり、ユーザーには次のように表示されます。

ここに画像の説明を入力してください

ご覧のとおり、横に空のスペースがある「ユーザー」というラベルがあり、その下に「必須」という単語があります。

ユーザーを混乱させないように、入力に関連付けられたラベルも(入力自体だけでなく)非表示にする方法はありますか?私のコードに何か問題がありますか?

前もって感謝します

4

3 に答える 3

3

私は実用的な解決策を見つけたと思います:

  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 

理想的ではありませんが、機能します

于 2011-05-07T21:52:55.243 に答える
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
于 2011-10-27T20:59:43.557 に答える
1

rails_adminこの機能はすでに追加されており、このための回避策は必要ないと思います。あなたは次のようにそれを行うことができます

  config.model Post do 
    edit do
      field :user_id do
        # This hides everything related with this field
        hide
        # You still need to set this value of course
        def value
          bindings[:view]._current_user.id
        end
      end 
    end
  end
于 2021-10-12T21:37:26.297 に答える