Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动管理员自定义操作项资源名称_Ruby On Rails_Resources_Activeadmin - Fatal编程技术网

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所解释的。