Ror4 Ajax在页面加载时执行javascript

Ror4 Ajax在页面加载时执行javascript,javascript,ajax,ruby-on-rails-4,Javascript,Ajax,Ruby On Rails 4,我的应用程序中不引人注目的javascript有问题。我在js.erb文件中添加了一个警报来帮助我进行调试,但它会在我加载页面时运行,在我单击按钮时不会执行任何操作。我真的不确定我做错了什么 用户\u controller.rb class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) r

我的应用程序中不引人注目的javascript有问题。我在js.erb文件中添加了一个警报来帮助我进行调试,但它会在我加载页面时运行,在我单击按钮时不会执行任何操作。我真的不确定我做错了什么

用户\u controller.rb

class UsersController < ApplicationController

def new
    @user = User.new
end

def create
    @user = User.new(user_params)

    respond_to do |format|
        if @user.save
            format.html { redirect_to :root, notice: 'User was successfully created.' }
            format.js   { render :text => "FINISHED THE AJAX REQUEST" }
        else
            format.html { render action: "new" }
            format.js   {}
        end
    end
end

def edit
    @user = User.find(params[:id])
end

def index
    @user  = User.find(params[:id])
end

private

    def user_params
  params.require(:user).permit(:email)
end

end
welcome.html.erb

<%= form_for(User.new, remote: true) do |f| %>
<%= f.text_field :email, class: "e_submit", placeholder:"Enter your email" %>               
<%= f.submit "Subscribe", class: "button" %>
<% end %>


我不明白为什么@user而不是user.new不起作用,但这是另一天的问题。

好的,我明白了。这一切都源于我对javascript的误解以及它在rails 4应用程序中的位置。我把它放在app/assets/javascripts/中,而我应该把它和视图HTML文件一起放在app/views/users中


当我把它放到那个目录中时,它不再需要任何现成的函数。另外,我不得不用format.js删除format.js{}。这是现在的工作。谢谢

将JQuery代码包装在ready函数->$(document).ready(function(){your Code})中。如果您只想加载特定页面/控制器的JS文件,请查看线程。
<%= form_for(User.new, remote: true) do |f| %>
<%= f.text_field :email, class: "e_submit", placeholder:"Enter your email" %>               
<%= f.submit "Subscribe", class: "button" %>
<% end %>