Ror4 Ajax在页面加载时执行javascript
我的应用程序中不引人注目的javascript有问题。我在js.erb文件中添加了一个警报来帮助我进行调试,但它会在我加载页面时运行,在我单击按钮时不会执行任何操作。我真的不确定我做错了什么 用户\u controller.rbRor4 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
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 %>