2010-11-01 4 views
2

Я знаю, что это, вероятно, невероятно просто, полагаю, что я просто не могу об этом разглядеть.Вопрос начинающего: PUT-обновление в режиме Rails

Так, в каркасного сгенерированного приложении, я ищу, чтобы иметь ссылку/кнопку в show.html.erb, что приведет к изменению status_id текущих ввод/строк в 3.

Я понимаю, как сделать GET, POST и DELETE команды, ставить я не получаю правильный синтаксис для выдачи команды PUT методы update в контроллере (link_to, button_to?)

Спасибо!

ответ

3
<%= link_to "Update", update_object_path(object), :method => :put %> 

Контроллер

def update 
    @obj = object.find(params[:id]) 
    @obj.status_id = 3 
    @obj.update_attributes 
    redirect_to :back 
end 
+0

Спасибо! Поскольку другие кнопки на той же странице будут обновлять status_id для других значений (1,2 и т. Д.), Как мне перейти к передаче требуемого status_id методу обновления? –

+2

измените метод контроллера, чтобы установить '@obj.status_id = params [: status_id] 'и измените путь в ссылке на' update_object_path (object,: status_id => 1) '(измените значение 1 для каждой кнопки) – Jeremy

+0

Спасибо BenB/Jeremy! Тем не менее, я получаю 'undefined method 'update_person_path'' (человек, являющийся моей моделью). 'person_path' отображает корректно, но все остальное не выполняется (' destroy_person_path', 'update_person_path' и т. д.). Все, что у меня есть в routes.rb, - это 'resources: people' –

Смежные вопросы