如何在将rails应用程序更改为ajax时定义控制器

时间:2013-01-26 09:59:39

标签: ruby-on-rails ajax

我有一个简单的rails应用程序工作正常,但我想将其更改为使用ajax。我使用Ajax升级了其他部分,但是我遇到了控制器代码问题。所以:

1)我已将remote:true添加到form_for。

2)我遇到控制器代码问题。目前它看起来像这样:

def create #saving new materials
    @material = Material.new(params[:material])
    @material.user_id = current_user.id if current_user
    if @material.save
      flash[:success] = "Content Successfully Created"
      redirect_to @material
    else
      render 'new'
    end
end 

问题是我知道我需要一个respond_to块,但我不知道该放在哪里。如果这是一个愚蠢的问题,我是新手如此道歉。

仅供参考 - js代码没问题。

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

def create #saving new materials
  @material = Material.new(params[:material])
  @material.user_id = current_user.id if current_user
  respond_to do |format|
    if @material.save
      flash[:success] = "Content Successfully Created"
      format.html { redirect_to @material }
      format.js
    else
      format.html { render 'new' }
      format.js
    end
  end
end