Как вставить в таблицу с помощью тега ссылки - PullRequest
0 голосов
/ 10 января 2012

У меня есть ArtistProduct модель. Пользователь вводит данные о продукте, пользователь может просмотреть введенные данные в модальном окне, щелкнув ссылку предварительного просмотра перед сохранением сведений.

Я пытаюсь сохранить данные, используя AJAX, передавая все детали, такие как params, при проверке, но не сохраняя базу данных.

В связи с этим я звоню AJAX:

var theVal=id+'/'+artist_id+'/'+name+'/'+desc+'/'+price+'/'+story+'/'+artist_name+'/'+dimension+'/'+material+'/'+contact
var theURL = '/add_temp/' + theVal;
$.ajax({
  url: theURL
});

В контроллере я работаю так:

def add_temp
  @pro_id=ArtistProduct.where("id=?",params[:id])
  if @pro_id.nil?
    @artistprod = ArtistProduct.new(:artist_id=>58, :product_name=>params[:name], :description=>params[:desc], :product_price=>params[:price], :product_story=>params[:story],:artist_name=>params[:artist_name], :dimensions=>params[:dimension],:material=>params[:material],:contact_number=>params[:contact])
    @artistprod.save
  end 
end

UPDATE

Спасибо за ваш ответ.

Теперь получаю ошибку маршрутизации.

У меня в роутере вроде:

match 'add_temp/:id/:artist_id/:name/:desc/:price/:story/:artist_name/:dimension/:material/:contact'=> 'artist_products#add_temp'

UPDATE

Ошибка маршрутизации

404 Не найдено

No route matches [POST] "/add_temp/P58018/58/Prod/swsx/50/sfdf/null/null/0"

UPDATE

Да, я его определил и исправил, но значения также не сохраняются в базе данных. Пожалуйста, помогите мне

В контроллере я делаю так:


    def add_temp

      if !(ArtistProduct.where("id=?",params[:id]).exists?) 
      @artistprod=ArtistProduct.new(:id=>params[:id],:artist_id=>58, :product_name=>params[:name], :description=>params[:desc], :product_price=>params[:price], :product_story=>params[:story],:artist_name=>params[:artist_name], :dimensions=>params[:dimension],:material=>params[:material],:contact_number=>params[:contact])
      @artistprod.save
      respond_to do |format|
         format.html { redirect_to @artistprod.addproduct }
         format.js
       end
     end 
    end

Привет, dbkooper, спасибо за ответ. Я попробовал ответ, данный вами, но получаю ошибку маршрутизации Ввиду звоню вроде:

        var theURL = '/artist_products/'+id+'/add_temp?artist_id='+artist_id+'product_name='+name+'description='+desc+'product_price='+price+'product_story='+story+'artist_name='+artist_name+'dimensions='+dimension+'material='+material+'contact_number='+contact; 

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Я думаю, что ваши маршруты должны быть

resources artist_products do 
    member do 
         post 'add_temp' 
     end
end

используйте грабли: маршруты, чтобы получить правильные маршруты наиболее вероятно, что это будет "artist_products /: id / add_temp"

Для запроса AJAX вы можете отправить использование параметра val? на URL как

var theURL = '/artist_products/'+id+'/add_temp?artist_id='+artist_id+'so on..'; 
$.ajax({   url: theURL });

Внутри вашего контроллера Вы можете получить доступ к параметрам как обычно

0 голосов
/ 10 января 2012

Большая проблема, которую я вижу, заключается в том, что в вашем $.ajax вызове отсутствуют некоторые опции.По умолчанию $.ajax по умолчанию соответствует запросу GET, если тип не указан.

Вы должны изменить его на:

$.ajax({
  type: 'POST',
  url: theURL,
  success: function (json) {
    // handle your success here
  },
  error: function (response) {
    // handle your errors here
  }
});

Таким образом, вы указываете, что это будетPOST запрос и у вас также есть методы обратного вызова для обработки success и error

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...