Могу ли я использовать форму для обновления одного свойства моего объекта - PullRequest
0 голосов
/ 13 января 2011

Я новичок в Rails (Rails 3). У меня есть свойство 'color' в модели MyObject, и это свойство 'color' должно отображаться в стиле раскрывающегося меню. Поэтому я использую Rails Helper для реализации этого:

select("myobject", COLORS, { :include_blank => false }),

Но экземпляр MyObject из БД отображается в строке таблицы, а не в форме. Только свойство 'color' должно использовать помощник по формам. Я хочу, чтобы мое свойство 'color' отображалось в раскрывающемся меню. Если я решу использовать помощник по форме Rails, могу ли я использовать помощник по форме Rails для одного свойства ('color') объект и когда форма отправлена, весь объект (в строке таблицы), переданный в контроллер, будет обновлен? Если да, как реализовать представление, если нет, как правильно реализовать?

в сторону моего контроллера, метод обновления:

class MyobjectsController < ApplicationController
...
def update

     @myobject = myobject.find(params[:id])

     if @myobject.update_attributes(params[:myobject])
      puts @myobject.color #always get default value
      redirect_to myobject_path
    else
      redirect_to myobject_path
    end
  end
...
end

1 Ответ

0 голосов
/ 13 января 2011

Вы можете обновить отдельные атрибуты.Вы, вероятно, ищете такую ​​форму:

form_for @myobject do |f|
  f.select :color, COLORS
end

Вы также можете упростить код контроллера:

def update
  @myobject = myobject.find(params[:id])

  if @myobject.update_attributes(params[:myobject])
    puts @myobject.color #always get default value
  end
  redirect_to myobject_path
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...