【问题标题】:Rails_admin Dropdown menu with has_many, belongs_to models relations带有 has_many、belongs_to 模型关系的 Rails_admin 下拉菜单
【发布时间】:2020-05-22 17:46:30
【问题描述】:

我正在我的应用程序中使用各种不同的模型构建一个 Rails 管理下拉菜单。我要链接的两个模型是学生和公司。学生属于_公司和公司有_许多学生的。 代码如下:

RailsAdmin.confing do |config|
...
config.model 'Student' do
   edit do
       ...
       various fields
       ...
       field connection_with_company, :enum do     
          connection_with_company
       ...

我已经在 Student 模型中创建了一个返回我需要的值的方法,但是 rails admin 没有读取我在模型中创建的方法。 这个想法是在添加新学生时,列出可用的公司。我已经搜索并尝试了几乎所有东西。我已经尝试过自定义字段和虚拟字段,尽管我可能做错了。 任何帮助都感激不尽!! 谢谢!

更新

试过了,但它没有出现在编辑部分

$('#academy.id').parent().hide() academies = $('#academy.id').html() 
$('#company_profiles.company_id').change -> 
  companies = $('#company_profiles.company_id :selected').text()
  escaped_companies = companies.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1') 
  options = $(academies).filter("optgroup[label='#{companies}']").html()
  if options $('#academy.id').html(options)
    $('#academy.id').parent().show() 
  else 
    $('#academy.id').empty() $('#academy.id').parent().hide()

【问题讨论】:

    标签: ruby-on-rails activerecord rails-admin


    【解决方案1】:

    您不能将 rails admin 配置为让一个字段值依赖于另一个字段的值,至少在没有先保存对象的情况下是这样。 你必须建立一个结合两者的新领域。 你想走哪条路?选择的学生保存对象,然后显示带有过滤值的公司字段? 或者在一个结合了两者的全新领域上撒上 JavaScript 魔法?

    您可以尝试添加此文件吗?

    app/assets/javascripts/rails_admin/custom/ui.js
    
    //= require_tree .
    //= require 'rails_admin/custom/yourfile.js'
    

    【讨论】:

    • 我想从学生那里得到的信息,来自公司和其他几个模型。如果有一个javascript“魔法”请分享啊哈哈。我在想我需要那里已经有字段,然后javascript会从字段中“选择”值。我非常感谢@Guillermo Siliceo Trueba 的帮助。
    • 您似乎已经尝试过自定义字段方式,您卡在哪里了?你能分享你的自定义字段代码吗?
    • 试过了,但它没有出现在编辑部分$('#academy.id').parent().hide() academies = $('#academy.id').html() $('#company_profiles.company_id').change -> companies = $('#company_profiles.company_id :selected').text() escaped_companies = companies.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1') options = $(academies).filter("optgroup[label='#{companies}']").html() if options $('#academy.id').html(options) $('#academy.id').parent().show() else $('#academy.id').empty() $('#academy.id').parent().hide()
    • 我将您的评论移至问题本身,您可以对其进行编辑以添加更多信息。你把那段代码放在哪个文件里?
    • 嘿 Guillermo,所以我在 /custom 路径中的文件中添加了这个,与 ui.js 相同的路径,并在 ui.js 中添加了 /=require 树。起初,我什至无法从模型中获取必要的数据(有一个大链,之间有很多 has_many belnogs_to),但我解决了使用 rails_admin 初始化程序上的 SQL 直接从数据库中获取它的问题,但我不能连接 JavaScript。感谢我朋友的所有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多