【发布时间】:2021-07-08 00:22:11
【问题描述】:
这与我之前的帖子有关,我很绝望,我相信这会有一个简单的解决方案,我只是不明白如何......我用 Ruby 2.7 开始了另一个项目 .2 和 Rails 6.1.3。我在侧边栏中使用了手风琴菜单,但同样,'link:to' 只是忽略了路线......我发现 Javascript 视觉效果(手风琴菜单)和我上一篇文章中的模式使用了' event.preventDefault()' 来做它的视觉魔术......这里奇怪的是,如果我在浏览器导航中编写路线它可以工作......所以这只是我的代码不起作用......路线被定义为通常使用“资源:用户”...
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
这里是代码... 控制器动作:(app/controllers/users_controller.rb)
class UsersController < ApplicationController
before_action :set_user, only: %i[ show edit update destroy ]
before_action :options
# GET /users or /users.json
def index
@users = User.all
end
创建菜单的哈希 (app/controllers/application_controller.rb)
class ApplicationController < ActionController::Base
def options
@options = [
{:letrero => "Almacen", :submenu =>
[
{:opcion => "Entradas", :ruta => '#'},
{:opcion => "Salidas", :ruta => '#'}
]
},
{:letrero => "Proveedores", :submenu =>
[
{:opcion => "Indice", :ruta => 'suppliers_path'}
]
},
{:letrero => "Productos", :submenu =>
[
{:opcion => "Index", :ruta => 'products_path'},
{:opcion => "Autorización", :ruta => '#'}
]
},
{:letrero => "Usuarios", :submenu =>
[
{:opcion => "Indice", :ruta => 'users_url'}
]
}
]
end
end
侧边栏菜单(app/views/static_pages/_sidebar.html.erb):
<ul class="menu">
<% @options.each do |opcion| %>
<li>
<%= link_to "#{opcion[:letrero]}<i class='icono derecha fas fa-chevron-down drop-down'></i>".html_safe, '#'%>
<ul>
<li>
<% opcion[:submenu].each do |subopcion| %>
<%= link_to subopcion[:opcion], eval(subopcion[:ruta]) %>
<% end %>
</li>
</ul>
</li>
<% end %>
</ul>
这是 app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>AlmacenCEB</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= favicon_link_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css">
</head>
<body>
<div class="container">
<nav>sistema de caja</nav>
<div class="main-w">Main
<%= yield %>
</div>
<div class="sidebar">
<div class="titulo">Menú principal</div>
<%= render "static_pages/sideBar" %>
</div>
<footer>Footer</footer>
</div>
</body>
</html>
【问题讨论】:
标签: javascript html jquery ruby-on-rails