2013-06-02 10 views
0

Я не могу обновить поле в таблице базы данных. Почему, когда я работаю в шаблоне редактирования (controller/id/edit), рельсы перенаправляют меня на действие CREATE и создают новую строку в таблице? Он должен перенаправить меня, чтобы обновить действие и обновить только одно поле. Контроллер:restfull controller ignore update action

def create 
Question.create(:user_id => session[:user_id], :question => params[:question][:question]) 
end 

    def update 
    debugger #not go there 
    @update = Question.find(params[:id]) 
    @update.update_attributes(params[:question_status]) 
end 

редактировать шаблон

= form_for Question.new do |w| 
    %p 
= w.label :question_status, :caption => "question status: " 
= w.text_field :question_status 
    %p 
= w.submit "Update" 

routs.rb

match "questions/logout" => "questions#logout" 
match "questions/show_all_questions" => "questions#show_all_questions" 
match "questions/update" => "questions#update" 
resources :questions 

get "questions/create" 
get "questions/show" 
get "questions/update" 
get "questions/destroy" 
get "questions/new" 
get "questions/edit" 
get "questions/index" 
+0

1. Редактирование формы с действием 'Question.new'? ты уверен?. 2. У вас есть 'resources: questions' на' routes.rb', почему вы добавляете «вопросы/.....» на свой 'routes.rb', я думаю, что для использования достаточно« ресурсов: вопросы ». –

+0

, когда я пытаюсь ответить на вопрос Question.update или Question.edit 'неправильное количество аргументов (0 для 2)' 'undefined method' edit'' –

ответ

0

перенаправляет вас способом создания, потому что ваш звонок Question.new.

вы должны иметь свою форму, как:

= form_for Question do |w| 
+0

У меня есть вопросы: почему вы используете вас с помощью Вопроса? а не обычный @question? – Flo

+0

ДА ... отладчик пришел в метод обновления. СПАСИБО!!! –

+0

но поле не обновляется ... в контроллере Я пытаюсь это '@update = Question.find (params [: id]) # @ update.update_attributes (params [: question_status])' –