【问题标题】:Add fields to 'new' view in Rails Admin在 Rails Admin 中将字段添加到“新”视图
【发布时间】:2015-11-11 20:23:41
【问题描述】:

我想为特定模型对象“用户”添加其他字段到 Rails 管理“新”视图。这些字段不是模型本身的属性,而只是我希望用户能够提交信息以计算另一个字段的字段。

这可能吗?

【问题讨论】:

  • 绝对有可能。你能举个例子说明你正在尝试做什么吗?
  • 所以我目前正在通过 Rails 管理工具创建新用户。现在,新视图仅显示该模型的属性字段(表上的字段)。我想向该视图(表单)添加两个附加字段。然后我想使用这两个字段来计算模型上实际属性之一的值。这有意义吗?

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


【解决方案1】:

在 rails admin 中使用向模型添加虚拟字段,

config.model Address do
  list do
    # virtual field
    configure :full_address do
      # any configuration
    end
    fields :full_address, :street, :number #, ...
  end
end

参考 - https://github.com/sferik/rails_admin/wiki/Fields#virtual-fields

【讨论】:

    【解决方案2】:

    我对 Rails Admin 不是很熟悉,但是你应该可以通过 Rails 的虚拟属性机制得到你想要的。

    在您的 user.rb 模型文件中,您需要添加一个 attr_accessor 行,列出您要分配给非模型字段的符号,如下所示:

    class User < ActiveRecord::Base
    
      attr_accessor :virtual_field_one, :virtual_field_two
    
      # Remainder of your code
    
    end
    

    您可以将字段添加到填充这些值的相应视图:

    <%= f.text_field :virtual_field_one %>
    

    然后您可以将这些属性添加到您的users_controller.rb 的强参数方法中,如下所示:

    class ActivitiesController < ApplicationController
    
      # other code
    
      def user_params
        params.require(:activity).permit(:mode_field_one, :mode_field_two, :virtual_field_one, :virtual_field_two)
      end
    
      # other code
    
    end
    

    现在您应该可以像 User 模型中的任何其他字段一样从 params 哈希访问 virtual_field_onevirtual_field_two

    virtual_field_one = params[:virtual_field_one]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2015-01-24
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多