Ruby on Rails,:注意

时间:2013-02-15 18:31:48

标签: ruby-on-rails

我正在使用此file uploader example for Ruby on Rail

我的控制器中有这段代码。我需要在某个地方有一个:notice参数,所以当文件上传时,通知将是“你已经上传了一个文件”,如果有错误那么“出错了”

def create
    p_attr=params[:upload]
    p_attr[:arraydb] = params[:upload][:upload].first if params[:upload][:upload].class == Array
    @upload = Upload.new(p_attr)

    respond_to do |format|
      if @upload.save
        @upload.update_attributes(:user_id => current_user.id)
        format.html {
          render :json => [@upload.to_jq_upload].to_json,
          :layout => false

        }

        format.json { render json: [@upload.to_jq_upload].to_json, status: :created, location: @upload }
      else

        format.html { render action 'new' }
        format.json{ render json: {name:(@upload.upload_file_name).split(".").first ,error: @upload.errors.messages[:upload_file_name]}, :status =>422}
      end
    end
  end

所以,我需要这样的东西:

format.html { redirect_to(@upload, :notice => "LALALALALALA") }

但我不知道如何将:notice注释到我的代码中

提前致谢。

2 个答案:

答案 0 :(得分:0)

当你说'整合'时,你的意思是我如何在视图或控制器方法中使用通知值?

如果是这样,您可以使用params [:notice]获取视图中的值或您要重定向到的控制器。

答案 1 :(得分:0)

这就是您将通知“整合”到您的回复中的方式

def create
  p_attr=params[:upload]
  p_attr[:arraydb] = params[:upload][:upload].first if params[:upload][:upload].class == Array
  @upload = Upload.new(p_attr)

  respond_to do |format|
    if @upload.save
      @upload.update_attributes(:user_id => current_user.id)
      format.html { redirect_to(@upload, :notice => "Success") }
      format.json { render json: [@upload.to_jq_upload].to_json, status: :created, location: @upload }
    else
      format.html { render action 'new', :notice => "Failed" }
      format.json{ render json: {name:(@upload.upload_file_name).split(".").first ,error: @upload.errors.messages[:upload_file_name]}, :status =>422}
    end
  end
end