Ruby on rails 活动管理员自定义操作项资源名称
不知道为什么我似乎不能弄明白这一点,因为它似乎应该是如此简单,但基本上,我正在尝试创建一个链接到一个行动(我希望“发布”出现在旁边,以显示,编辑,删除)的每一个资源在活动管理 我使用了他们在维基上建议的代码:Ruby on rails 活动管理员自定义操作项资源名称,ruby-on-rails,resources,activeadmin,Ruby On Rails,Resources,Activeadmin,不知道为什么我似乎不能弄明白这一点,因为它似乎应该是如此简单,但基本上,我正在尝试创建一个链接到一个行动(我希望“发布”出现在旁边,以显示,编辑,删除)的每一个资源在活动管理 我使用了他们在维基上建议的代码: action_item do link_to "button label", action_path(post) end 问题是,我得到了一个错误,因为rails不知道“post”是什么。零。Github上的Wiki版本具有相同的代码,只是它们使用“资源”而不是post。我不
action_item do
link_to "button label", action_path(post)
end
问题是,我得到了一个错误,因为rails不知道“post”是什么。零。Github上的Wiki版本具有相同的代码,只是它们使用“资源”而不是post。我不确定这是否意味着我会在那里使用自己的资源名,或者你是否应该实际使用变量“resource”。我尝试了后一种情况,得到了一个“没有ID就找不到”错误
所以问题是,在哪里设置变量名?他们使用什么作为迭代器?我已经用一段非常类似的代码完成了这项工作,请参见: 在my:
app/admin/posts.rb中
member_action :publish, method: 'get' do
post = Post.find(params[:id])
post.publish!
redirect_to admin_post_path(post), notice: 'Post published!'
end
在我的例子中,我希望链接按钮仅在show
操作中可用
action_item :only => :show do
if post.status == 'pending'
link_to 'Publish', publish_admin_post_path(post)
elsif post.status == 'published'
link_to 'Expire', expire_admin_post_path(post)
else
end
end
希望这对你有帮助 我曾经用过这个:
action_item only: :show do |resource|
link_to('New Post', new_resource_path(resource))
end
更新
action_item only: :show do
link_to('New Post', new_resource_path)
end
谢谢在ActiveAdmin中,您必须使用资源
来引用您正在使用的对象
当您在像索引
这样的操作中使用资源
时,您可能会得到一个错误,因为ActiveAdmin没有使用它。要防止出现这种情况,请指定要在其中显示按钮的操作
若要指定操作,请仅为参数提供一个包含希望按钮出现在其中的操作数组。例如:
action_item :only => [:show, :edit] do
...
end
刚才解决了这个问题,但忘了结束这个问题。我相信这最终是我的解决方案。没有意识到街区需要一个variable@StephenCorwin这将返回一个ActiveAdmin::Views::ActionItems
对象(使用active_admin 0.6),该对象与所使用的模型无关。正确的答案应该是@LuisOrtegaAraneda所解释的。