【问题标题】:Ajax function implementation in controllers in railsRails 控制器中的 Ajax 函数实现
【发布时间】:2014-02-02 21:46:51
【问题描述】:

所以我一直在寻找这个问题的答案,但我遇到了很多麻烦。我正在尝试在 Rails 中有一个 form_for,它会转到 User 控制器中的 create 操作,它会根据提交是否失败来更新提交按钮的颜色。这是我的代码,其中一些直接来自我在网上找到的教程:

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 @user, notice: 'User was successfully created.' }
         format.js   {}
         format.json { render json: @user, status: :created, location: @user }
      else
         format.html { render action: "new" }
         format.json { render json: @user.errors, status: :unprocessable_entity }

      end
end

private

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

这是我的 create.js.coffee.erb 文件。

if(!isValidEmailAddress($('#e_submit').val())){
        $('.button').text("Invalid Email");
        $('.button').animate({"background-color":"#FFBF00"},300);
        $('.button').hover(function(){
        $(this).css("background-color","#FFBF00");
        }, function(){
            $(this).css("background-color","#FFBF00");
        });
        $('#e_submit').css("box-shadow","0 0 0px rgba(0,0,0,0)");
        $('#e_submit').val("");
    }

基本上,我希望根据提交的信息发生不同的js事件,我不知道如何在rails中做到这一点。

【问题讨论】:

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


    【解决方案1】:

    您可以检查您的js模板中@user是否有任何错误,以了解save是否成功,create.js.coffee.erb

    <% if @user.errors.empty? %>
      # successfully saved
    <% else %>
      # failed to save
    <% end %>
    

    【讨论】:

    • 在这种情况下,将if,else放在控制器中是否仍然有意义?
    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2017-12-11
    • 2016-10-20
    • 2014-11-18
    • 2010-11-26
    • 2018-10-22
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多