Ror4 Ajax在页面加载时执行javascript

时间:2014-02-03 18:26:32

标签: javascript ajax ruby-on-rails-4

我的应用程序中有一个不显眼的javascript问题。我在js.erb文件中发出警报以帮助我调试,但是每当我加载页面时它都会运行,而当我单击按钮时它什么都不做。我不太确定我做错了什么。

users_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

create.js.erb

alert("BUTTON CLICKED");
$('.button').text("Thank You!");
$('.button').animate({"background-color":"#088A08"},300);
$('#e_submit').css("box-shadow","0 0 0px rgba(0, 0, 0, 0)");
$('#e_submit').val("");

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不起作用,但那是另一天的问题。

1 个答案:

答案 0 :(得分:0)

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

当我把它放在那个目录中时,它不再需要任何准备好的功能。另外,我必须使用format.js删除format.js {}。这现在正在运作。谢谢!