【问题标题】:active admin destroy action主动管理员销毁操作
【发布时间】:2012-04-05 15:14:56
【问题描述】:

我在一个用 ruby​​ on rails 编写的项目中工作,我目前在我的网站的内容管理器系统中使用活动管理 gem,我只是想知道活动管理员如何使用删除操作,我试图覆盖它,但我的代码没有工作,我认为我们在如何让特定线路被销毁方面遇到了问题

def destroy


  @menu = Menu.find(params[:menu_recipe][:menu_id])
  @menu_recipe = @menu.menu_recipes.find(params[:id])
  @menu_recipe.remove_recipe
  @menu_recipe.destroy
  redirect_to @reservation, :notice => "recipe destroyed"

      end  

它带有一个错误

undefined method `[]' for nil:NilClass   

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 gem activeadmin


    【解决方案1】:

    可能params[:menu_recipe] 没有设置。尝试将params[:menu_recipe] ||= {} 放在开头。

    但是,你为什么要通过Menu 找到它呢?你不能只做'MenuRecipe.find(params[:id])'吗?

    【讨论】:

    • 还是一样,或者我没有正确编码,请您编码在哪里放置params[:menu_recipe] ||= {} 我是新的 ruby​​ on rails 抱歉。
    • 首先,看看我刚刚所做的编辑。如果您确实需要通过Menu,我放置的那行应该放在动作的最开始。请注意,在执行 Menu.find(params[:menu_recipe][:menu_id]) 之前您还必须小心,因为如果 params[:menu_recipe][:menu_id] 为 nil,则 find 将引发异常。
    • 嗯,是的,我用它重新编写了我的代码,它的工作原理感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多