【发布时间】:2023-03-15 06:22:01
【问题描述】:
我在活动管理员的下拉菜单中得到不可读的值。 我有一个包含特定值(大约 10 个值)的属性,但是当我使用活动管理员创建该类的新对象时...首先它显示不可读的下拉菜单 其次,即使我选择了一些不可读的值,它也显示该属性为空白。 请帮忙
我的管理员/Resident.rb 页面::
ActiveAdmin.register Resident do
permit_params :room_number,:roll_number,:name,:hostel,:hostel_id
index do
column :room_number
column :roll_number
column :name
column :hostel
actions
end
filter :name,:as => :string
filter :hostel, :as => :select
filter :room_number
filter :roll_number
form do |f|
f.semantic_errors *f.object.errors.keys
inputs 'Enter the student details' do
input :room_number
input :roll_number
input :name
input :hostel
actions
end
end
end
我有两种模式:Hostel和Resident: models/hostel.rb
class Hostel < ActiveRecord::Base
has_many :residents
end
models/resident.rb
class Resident < ActiveRecord::Base
belongs_to :hostel
validates :room_number,presence: true,uniqueness: {case_sensitive: false}
validates :roll_number,presence: true,uniqueness:{case_sensitive: false}
validates :name, presence: true,length:{ maximum: 50 }
validates :hostel,presence: true
def display_name
hostel
end
end
架构:: 居民
create_table "residents", force: :cascade do |t|
t.string "room_number"
t.string "roll_number"
t.string "name"
t.string "hostel"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "hostel_id"
end
旅馆:
create_table "hostels", force: :cascade do |t|
t.string "hostel"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
结束
【问题讨论】:
-
这些是字符串表示的实际对象。根据您构建此下拉列表的方式以及您使用的表单构建器,您将需要提供文本和值方法(:name,:id)或文本哈希值(
{name: :id})或关联数组([[:id:name]]) 一点代码可以帮助我们快速解决这个问题 -
validates :hostel,presence: true,inclusion:{in:%w(a b c h pg j frc e g i),message: "%{value} is not a valid hostel"}我的模型有上述验证.. -
def create hostel = Hostel.find_by(hostel:resident_params[:hostel]) @resident = hostel.create_resident(resident_params) if hostel.present? if @user.save flash[:info] = "Resident Created" else flash[:info] = "Resident Creation Unsucessful" end end这就是开始创建居民的方式.. -
请确保您以后将此信息添加到您的问题而不是 cmets。
-
好的..现在你能告诉我这里发生了什么...
标签: ruby-on-rails ruby activerecord activeadmin formtastic