Ruby on rails 破坏按钮轨道

Ruby on rails 破坏按钮轨道,ruby-on-rails,Ruby On Rails,我想为菜单项创建一个销毁,但不知道在信息中放置什么和位置。我想它应该在菜单控制器,但不确定,请帮助。这是我想在隐藏字段后添加按钮的表单: =form_for ["admin", @menu] do |f| %p =f.text_field :name, class: "form-control" %h3 Menu Items =f.fields_for :menu_items do |c| %p =c.text_field :title,placehol

我想为菜单项创建一个销毁,但不知道在信息中放置什么和位置。我想它应该在菜单控制器,但不确定,请帮助。这是我想在隐藏字段后添加按钮的表单:

=form_for ["admin", @menu] do |f|
  %p
    =f.text_field :name, class: "form-control"

  %h3 Menu Items
  =f.fields_for :menu_items do |c|
    %p
      =c.text_field :title,placeholder: "Title", class: "form-control"
      =c.text_field :url, placeholder: "enter URL or path here",class: "form-control"
      =c.hidden_field :id






  %p
    =f.submit

  %p
    =link_to "back", admin_menus_path, class: "btn btn-danger"
菜单控制器:

module Admin
  class MenusController < AdminController
    def index
      @menus = Menu.all
    end

    def new
      @menu = Menu.new
      10.times {@menu.menu_items.build}
    end

    def create
      @menu = Menu.new menu_params
      if @menu.save
        redirect_to admin_menus_path, notice: "Menu created."
      else
        render :new
      end
    end

    def update
      @menu = Menu.find params[:id]
      if @menu.update_attributes menu_params
        redirect_to admin_menus_path, notice: "Menu updated."
      else
        render :edit
      end
    end

    def edit
      @menu = Menu.find params[:id]
      10.times {@menu.menu_items.build}
    end

    def destroy
      @menu = Menu.find params[:id]
      if @menu.destroy
        redirect_to admin_menus_path, notice: "Menu deleted!"
      else
        redirect_to admin_menus_path, alert: "Menu was NOT deleted!!!!"   
      end
    end

    protected
    def menu_params
      params.require(:menu).permit(:name, :menu_items_attributes => [:title, :url, :id])
    end
  end
end
模块管理
类MenusController[:title,:url,:id])
结束
结束
结束
请帮忙(

要摆脱这种混乱局面:

附言
如果你碰巧不知道我所问问题的答案,也不知道问题的技术措辞,如果你能用不同的措辞回答这个问题,我将不胜感激与@menu谢谢你相比。

据我所知,你的
菜单有很多菜单项
菜单项属于菜单
,当你想编辑你的
菜单
时,你可以删除已经存在的
菜单项

我会用下一种方法:

  • 控制器

    def菜单参数

    参数.require(:menu).permit(:name,:menu items\u attributes=>[:title,:url,:id,:\u destroy])

    结束

  • 在每个
    菜单项中添加按钮
    DESTROY
    ,并使用JavaScript,只需单击添加隐藏属性
    :\u DESTROY

  • 现在,当您单击
    SUBMIT
    时,您的
    菜单将获得
    :\u destroy
    属性并将销毁您的obejct


  • 希望它能对您有所帮助。

    您想将“销毁”按钮放在表单中吗?那很好。只是因为创建菜单项后,它无法从主菜单页中删除并显示一个编号点。不要喜欢它在该页上造成的混乱:“4”毕竟,这是一个cms,用户不必面对这种困惑。谢谢你,奥列格,我会尝试一下。但为了确保我们在正确的页面上,销毁按钮会销毁我所有的菜单项,还是只销毁我按下的菜单项,因为我真的想在每个菜单项下销毁按钮(上面的菜单项页面添加了图片)再次感谢您的耐心等待,因为这是我的第一个项目。您应该添加
    :\u destroy
    属性到
    菜单项
    您要删除的内容,当控制器中的rails获得它时,此
    菜单项
    将被销毁。例如,对象
    菜单项
    有2个
    菜单项
    -id:[10,11],在视图上单击id 11上的
    destroy
    按钮。JS添加到相应的对象属性
    :_destroytrue
    并按下
    SABMIT
    。控制器获取参数
    params[:菜单]={name:'My name',menu items_attributes:{title:'menu Item id 11',id:11,url:'google com',_destroy:true}}
    ,现在如果您使用此属性
    菜单,则带有
    id
    11的
    项将被删除。