アプリに rails_admin をインストールしましたが、非常に基本的なことをしたいと考えています...2 つのモデルがあり、それらの関連付けが期待どおりに表示されます... :user に属するセミナー登録モデルがあります。
rails_admin では、私のセミナー登録ユーザーをユーザー #1、ユーザー #1 などとしてリストします。
代わりにそれをユーザーの名前にしたいと思います。私がなんとかしたことはこれです:
config.model SeminarRegistration do
label "Seminar Signups"
# Found associations:
configure :user, :belongs_to_association
configure :seminar_time, :belongs_to_association # # Found columns:
configure :id, :integer
configure :user_id, :integer # Hidden
configure :seminar_time_id, :integer # Hidden
configure :created_at, :datetime
configure :updated_at, :datetime # # Sections:
list do
field :user do
pretty_value do
user = User.find(bindings[:object].user_id.to_s)
user.first_name + " " + user.last_name
end
end
field :seminar_time
end
export do; end
show do; end
edit do; end
create do; end
update do; end
end
「pretty_value」セクションには、ユーザーの姓名のテキストが表示されます...しかし、2 つの問題があります。
1) もはやリンクではありません。デフォルト値 (ユーザー #1、ユーザー #2 など) のままにすると、そのユーザーへのリンクが提供されます。そのリンクを元に戻すにはどうすればよいですか? rails_admin はどのようにパスを定義していますか?
2) フォームのすぐそこにある ID で検索する必要があるのは、非常に不格好に思えます...
これが基本的な質問である場合は申し訳ありません。私はマニュアルを読み、他の質問を調べましたが、まだ「クリック」していません。私はレールにもかなり慣れていません。
ありがとう。
リンクで動作させるには、これを行う必要がありました。
提案どおりフルネームのヘルパー メソッドを追加しましたが、ビュー ヘルパーに保持しました。
module ApplicationHelper
def full_name(user_id)
user = User.find(user_id)
user.first_name + " " + user.last_name
end
end
次に、「pretty_value」セクションを次のように変更しました。
pretty_value do
user_id = bindings[:object].user_id
full_name = bindings[:view].full_name(user_id)
bindings[:view].link_to "#{full_name}", bindings[:view].rails_admin.show_path('user', user_id)
end
基本的に、任意のビュー ヘルパー (作成されたレールまたはその他) にアクセスするには、indings[:view].my_tag_to_use を追加する必要があります。
たとえば、ユーザーの rails_admin ルートを取得するには、次のようにします。
bindings[:view].rails_admin.show_path('user', user_id)