2013-02-15 118 views
0

我正在使用此file uploader example for Ruby on RailRuby on Rails,:通知

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

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") } 

,但我不知道如何整合:注意到了我的代码提前

感谢。

+0

您的解决方案'format.html {redirect_to时(@upload,:通知=> “LALALALALALA”)}'只是工作,究竟是什么问题 ? – Khaled 2013-02-15 18:37:18

+0

我需要将此解决方案整合到def中,创建 – Tonja 2013-02-15 19:37:48

回答

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 
+0

它不会显示通知。我应该在视图中添加一些东西吗?我猜不是...... – Tonja 2013-02-17 09:49:51

+0

你必须在你的视图中添加一些东西,'flash'只是一个包含值的散列,通常你可以在布局中查看'flash'内的值。你可以在这里找到如何做到这一点http://guides.rubyonrails.org/action_controller_overview.html#the-flash – Khaled 2013-02-17 19:36:12

+0

我不得不以另一种方式“整合”,但谢谢=) – Tonja 2013-02-19 20:53:24

0

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

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

+0

以在控制器中使用通知的值,而不用查看。我只是修改了def创建,那么:notice参数将会在那里,如redirect_to的示例 – Tonja 2013-02-15 19:40:36