RailsAdmin:如何从自定义操作中呈现不同的模型索引
RailsAdmin: how to render a different model index from a custom action
在我的网站上,我有可以申请工作的用户,在我的数据库中创建候选资格。
在管理员的工作索引中,我创建了一个自定义操作,因此在每个工作旁边都有一个按钮,我可以按下该按钮来访问该工作的候选人索引。
除了这个自定义操作不起作用:
class Candidacies < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member? do true end
register_instance_option :only do [Job] end
register_instance_option :link_icon do 'fa fa-users' end
register_instance_option :controller do
proc do
@id = params[:id]
@objects = Candidacy.where(job_id: @id)
render :index
end
end
end
我加载了该工作的所有候选人,但是当我尝试重定向到候选人索引时,RailsAdmin 尝试加载工作索引,但使用的是候选人而不是工作,因此导致错误 500,因为候选人和工作没有共享相同的字段。
有人知道如何将特定职位的候选人加载到索引候选人中吗?
您可以在候选人索引上添加一个工作过滤器,然后为候选人构建一个 link 并预先过滤该工作。
首先将工作字段添加到候选人管理配置
rails_admin do
list do
field :job do
filterable true
end
end
end
那么我相信 url 看起来像这样:
"/admin/candidacy?model_name=candidacy&utf8=✓&f[job][52801][o]=is&f[job][52801][v]=#{job.id}"
您可以从浏览器中获取它,使用 UI 过滤视图并使用 tool like this
解码 url
因此,当您的用户单击 link 时,他们将被带到职位预筛选的候选人。
然后您可以修改您的操作以重定向到呈现 :index
的 url
在我的网站上,我有可以申请工作的用户,在我的数据库中创建候选资格。
在管理员的工作索引中,我创建了一个自定义操作,因此在每个工作旁边都有一个按钮,我可以按下该按钮来访问该工作的候选人索引。
除了这个自定义操作不起作用:
class Candidacies < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member? do true end
register_instance_option :only do [Job] end
register_instance_option :link_icon do 'fa fa-users' end
register_instance_option :controller do
proc do
@id = params[:id]
@objects = Candidacy.where(job_id: @id)
render :index
end
end
end
我加载了该工作的所有候选人,但是当我尝试重定向到候选人索引时,RailsAdmin 尝试加载工作索引,但使用的是候选人而不是工作,因此导致错误 500,因为候选人和工作没有共享相同的字段。
有人知道如何将特定职位的候选人加载到索引候选人中吗?
您可以在候选人索引上添加一个工作过滤器,然后为候选人构建一个 link 并预先过滤该工作。
首先将工作字段添加到候选人管理配置
rails_admin do
list do
field :job do
filterable true
end
end
end
那么我相信 url 看起来像这样:
"/admin/candidacy?model_name=candidacy&utf8=✓&f[job][52801][o]=is&f[job][52801][v]=#{job.id}"
您可以从浏览器中获取它,使用 UI 过滤视图并使用 tool like this
解码 url因此,当您的用户单击 link 时,他们将被带到职位预筛选的候选人。
然后您可以修改您的操作以重定向到呈现 :index
的 url