2013-02-15 5 views
0

Я использую это file uploader example for Ruby on Rail.Ruby 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

+0

Мне нужно интегрировать это решение в def create – Tonja

ответ

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

+0

вы должны добавить что-то в своем представлении, 'flash' - это просто хэш, содержащий значения, обычно вы просматриваете значения внутри' flash' в своем макете. Вы можете найти, как это сделать http://guides.rubyonrails.org/action_controller_overview.html#the-flash – Khaled

+0

Мне пришлось «интегрировать» по-другому, но спасибо =) – Tonja

0

Когда вы говорите «интегрировать», вы имеете в виду, как я могу использовать значение уведомления в поле зрения или метод контроллера?

Если это так, вы можете просто использовать params [: notice], чтобы получить значение в вашем представлении или контроллер, на который вы перенаправляете.

+0

, чтобы использовать значение уведомления в контроллере, не делая smt для просмотра. Мне нужно как-то модифицировать def create, чтобы: параметр уведомления был там, как в примере с redirect_to – Tonja