Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails restfull控制器忽略更新操作_Ruby On Rails_Ruby_Routes_Haml_Restful Architecture - Fatal编程技术网

Ruby on rails restfull控制器忽略更新操作

Ruby on rails restfull控制器忽略更新操作,ruby-on-rails,ruby,routes,haml,restful-architecture,Ruby On Rails,Ruby,Routes,Haml,Restful Architecture,我无法更新数据库表中的字段。为什么,当我在编辑模板(controller/id/edit)中工作时,rails会重定向我以创建操作并在表中创建新行?它必须将我重定向到更新操作并只更新一个字段。 控制器: def create Question.create(:user_id => session[:user_id], :question => params[:question][:question]) end def update debugger #not go

我无法更新数据库表中的字段。为什么,当我在编辑模板(controller/id/edit)中工作时,rails会重定向我以创建操作并在表中创建新行?它必须将我重定向到更新操作并只更新一个字段。 控制器:

  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"

它会将您重定向到create方法,因为您的call Question.new

您的表格应如下所示:

= form_for Question do |w|

1.使用操作编辑表单
问题。新建
?你确定?。2.您已经在
路由上使用了
资源:questions
。rb
,为什么要在
路由上添加get“questions/…”。rb
我认为应该使用足够的
资源:questions
。当我尝试Question.update或Question.edit时,出现此错误
参数数量错误(0代表2)
未定义的方法
edit'`我有问题:你为什么用你的问题?而不是通常的@question?但字段不更新。。。在控制器中,如果状态是有问题的字段,我将尝试此
@update=Question.find(params[:id])#@update.update_属性(params[:Question_status])
。尝试@update.update_attributes(params[:status]),如果status在问题中,您可以使用@update.update_attributes(params[:question][:status])访问它,因为我应该将控制器中的参数用作散列。解决了
@update.update_属性(:question_status=>params[:question][:question_status])
再次感谢您