2013-08-20 5 views
-1

Я взял на себя чужой проект Rails, и у меня есть вопрос о HTTP-запросах.HTTP-запрос - Ruby on Rails

Он видит, что я могу передавать параметры через HTTP-запросы, я просто не знаю, как это сделать. Например: rake routes показывает

PUT /auction2s/:id(.:format)      auction2s#update 

который, кажется, соответствует этой функции

# PUT /auction2s/1 
    # PUT /auction2s/1.json 
    def update 
    @auction2 = Auction2.find(params[:id]) 
    print "Hello World" 
    respond_to do |format| 
     if @auction2.update_attributes(params[:auction2]) 
     format.html { redirect_to @auction2, notice: 'Auction2 was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @auction2.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

Но я не могу понять, что мне нужно URL будет перейти к, например, изменить

id=18445&done=true 

в эту функцию.

Любые мысли? Является ли функция структурированной правильно? Мне просто нужно передать запрос в формате Ruby, а не через браузер или AJAX (это то, что я пытаюсь)?

+0

Прежде всего, ваш файл 'routes' говорит, что' PUT' req установлен в 'auction1s', а код, о котором вы говорили, относится к' auction2s'? –

+2

@NeerajT слишком хорош. Его редактирование, вероятно, спасло вас от потери всей репутации: http://stackoverflow.com/help/whats-reputation (см. № 5 в разделе «Вы теряете репутацию когда»). Проблемы с программированием могут расстраивать, но, как правило, это хорошая идея (читайте: в ваших интересах), чтобы оставить разочарование из ваших вопросов. –

+0

Моя ошибка - я просто хотел, чтобы вы, ребята, поняли, насколько я потерял себя, так что не было бы предположений о том, как я структурировал вещи, когда я его строил. –

ответ

0

У вас должна быть форма для этого действия. Скорее всего в этом месте ->app/views/auction1s/edit.html.erb. Это будет edit.html.haml, если вы используете движок шаблонов haml. Форма будет отображаться в представлении, и пользовательский ввод будет отправлен в качестве параметров для этого действия при отправке формы.

+0

Да, сэр, - я там есть форма редактирования, но я хочу сделать визуализацию изменений из другого представления - IE app/views, который отображает все аукционы2 (извините, что у меня там 1s, это еще одна структура MVC). –

+0

Тогда вам придется явно отобразить это представление в вашем действии 'edit'. 'render: template =>" auction2s/<имя шаблона> "' – usha

+0

Правильно, но это просто отобразит шаблон - я действительно хочу отправить запрос на put. Для большего контекста это флажок, и каждый раз, когда установлен флажок, я хочу изменить это логическое значение на «true» или «false». –