0

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 をコードに統合する方法がわかりません

前もって感謝します。

4

2 に答える 2

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
于 2013-02-16T09:48:51.447 に答える
0

「統合」とは、notice の値をビューまたはコントローラー メソッドでどのように使用できるかということですか?

その場合は、 params[:notice] を使用して、ビューまたはリダイレクト先のコントローラーで値を取得できます。

于 2013-02-15T19:18:31.610 に答える