我对 Rails 比较陌生,所以我不确定我是否正确路由/构造了我的控制器和视图。
简单地说,我只是尝试使用 user/show.html.erb 页面中的选项卡来使用 jQuery 在其下方的内容区域中呈现部分内容。
但是,当我使用代码刷新页面时,出现以下错误:
undefined local variable or method `userprofile_path' for #<#<Class:0x007f8c181e9ff0>:0x007f8c171662a0>
我的 app>views>users>show.html.erb :
<div id="profile-box">
<ul class="profile-tabs">
<%= link_to "<li class=\"tab selected\">Current</li>".html_safe, userprofile_path, remote: true %>
<%= link_to "<li class=\"tab\">Offers</li>".html_safe, userprofile_path, remote: true %>
<%= link_to "<li class=\"tab\">Sales</li>".html_safe, userprofile_path, remote: true %>
</ul>
<div id="profile-content">
</div>
</div>
我的 app>controllers>users_controller.rb :
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def userprofile
respond_to do |format|
format.js
end
end
end
我的 app>assets>javascripts>userprofile.js :
$(function() {
$("li.tab").click(function(e) {
e.preventDefault();
$("li.tab").removeClass("selected");
$(this).addClass("selected");
$("#profile-content").html("<%= escape_javascript(render partial:
"users/offers")%>");
});
});
我也在使用设计,所以这是我的 routes.rb 文件:
devise_for :admin_users, ActiveAdmin::Devise.config
devise_for :users, :path => '', :path_names => {:sign_in => 'login', :sign_out => 'logout'}
resources :users
由于我是 Rails 新手,我不确定它是否是代码错误或缺失、文件命名不正确、是否需要某个新文件以使其工作,或者它到底是什么问题。
如果有人能在我需要的代码和应用程序的结构方面为我指明正确的方向,我将不胜感激。