Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery没有';t在Rails视图中运行_Javascript_Jquery_Html_Ruby On Rails - Fatal编程技术网

Javascript jQuery没有';t在Rails视图中运行

Javascript jQuery没有';t在Rails视图中运行,javascript,jquery,html,ruby-on-rails,Javascript,Jquery,Html,Ruby On Rails,我正在尝试在我的rails应用程序上运行一个简单的jQuery代码,它将简单地更改我视图中的HTML(只是为了在做任何严肃的事情之前测试jQuery是否真的工作) 在我的views/contacts文件夹中,我创建了index.js.erb文件,试图从我的内容中调出idcontacts,并从我的分页视图中调出paginatorid。下面是index.js.erb文件的内容(甚至将其更改为index.js都不起作用): 这里是我调出paginatorid的地方(在我的views/layouts/_

我正在尝试在我的rails应用程序上运行一个简单的jQuery代码,它将简单地更改我视图中的HTML(只是为了在做任何严肃的事情之前测试jQuery是否真的工作)

在我的
views/contacts
文件夹中,我创建了
index.js.erb
文件,试图从我的内容中调出id
contacts
,并从我的分页视图中调出
paginator
id。下面是
index.js.erb
文件的内容(甚至将其更改为
index.js
都不起作用):

这里是我调出
paginator
id的地方(在我的
views/layouts/_paginator.html.erb
中):

<table class="table" id="contacts">
                 <%= render partial: "contact", object: @contacts, remote: true %>            
              </table>    
   <div class="card-footer">
                <div id="paginator" class="pagination justify-content-center">
              <%= paginate @contacts, remote: true %>
           </div>
          </div>
我在这里期望的是
index.js
index.js.erb
文件将运行,并将表和分页器的内容更改为上述段落标记,但由于某些原因,它不会运行代码,甚至无法识别
视图/contacts/index.js
文件中添加的jquery


你知道如何确保它运行或者我遗漏了什么吗?

Rails不是这样工作的。只有当客户端请求javascript时,才会呈现和返回index.js.erb。如果请求html,则只呈现index.html.erb视图

我认为您正在尝试添加特定于页面的Javascript,该Javascript位于您的app/assets/javascripts/文件夹中。请参见此处:

如果您将以下内容添加到app/assets/javascripts/contacts.coffee文件中,那么您就可以开始了:

$(document).on('turbolinks:load', ->
  $('#contacts').html('<p>hello contacts</p>')
  $('#paginator').html('<p>hello paginator</p>')
)
$(document).on('turbolinks:load',->
$(“#联系人”).html(“hello contacts

”) $(“#paginator”).html(“hello paginator

”) )

$(文档).ready(->
$(“#联系人”).html(“hello contacts

”) $(“#paginator”).html(“hello paginator

”) )
如果您不使用TurboLink

class ContactsController < ApplicationController

  before_action :find_params, only: [:edit, :update, :destroy]

  def index

    # catch the group id from params in session
    session[:selected_group_id] = params[:group_id]

    @contacts = Contact.by_group(params[:group_id]).search(params[:term]).order(created_at: :desc).page params[:page]

    respond_to do |format|
      format.js
      format.html
    end 
end 

def autocomplete
  @contacts = Contact.search(params[:term]).order(created_at: :desc).page(params[:page])
  render json: @contacts.map { |contact| { id: contact.id, value: contact.name } }
end

def new
  @contact = Contact.new
end 

def create
  @contact = Contact.new(contact_params)
  if @contact.save
    flash[:success] = "Contact was successfully created."
    redirect_to(previous_query_string)
  else
    render 'new' 
  end
end 

def edit
end 

def update
  if @contact.update(contact_params)
    flash[:success] = "Contact successfully updated."
    redirect_to(previous_query_string)
  else
    render 'edit'
  end
end 

def destroy
  @contact.destroy
  flash[:success] = "Contact successfuly deleted."
  redirect_to contacts_path
end 

private

def contact_params
   params.require(:contact).permit(:name, :email, :phone, :mobile, :company, :address, :city, :state, :country, :zip, :group_id, :avatar)
end 

def find_params
  @contact = Contact.find(params[:id])
end

def previous_query_string
  session[:selected_group_id] ? { group_id: session[:selected_group_id] } : {} 
end 


end
$(document).on('turbolinks:load', ->
  $('#contacts').html('<p>hello contacts</p>')
  $('#paginator').html('<p>hello paginator</p>')
)
$(document).ready( ->
  $('#contacts').html('<p>hello contacts</p>')
  $('#paginator').html('<p>hello paginator</p>')
)