私は Rails に比較的慣れていないため、コントローラーとビューを正しくルーティング/構造化しているかどうかわかりません。
簡単に言えば、user/show.html.erb ページ内のタブを使用して、その下のコンテンツ領域に jQuery で部分的にレンダリングしようとしています。
ただし、コードでページを更新すると、次のエラーが発生します。
undefined local variable or method `userprofile_path' for #<#<Class:0x007f8c181e9ff0>:0x007f8c171662a0>
私のアプリ>ビュー>ユーザー>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>
私のアプリ>コントローラー>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
私のアプリ>資産> 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")%>");
});
});
私もDeviseを使用しているので、ここに私のroutes.rbファイルがあります:
devise_for :admin_users, ActiveAdmin::Devise.config
devise_for :users, :path => '', :path_names => {:sign_in => 'login', :sign_out => 'logout'}
resources :users
私はRailsを初めて使用するので、コードが正しくないか欠落している、ファイルの名前が正しくない、動作させるためにどこかに新しいファイルが必要なのか、それが正確に何であるかはわかりません。
必要なコードとアプリの構造に関して誰かが私を正しい方向に向けることができれば、私はそれを大いに感謝します.