我有一个名为projects的模型,它有一个属性:opstatus,我想将其设置为3(opstatus是一个int)。当用户点击以下链接时,我需要这样做:
<%= link_to 'Close', projects_path, :action => :newmeth %>
我为此创建了方法(在projects_controller中):
def newmeth
@project.update_attribute(:opstatus, 3)
end
但是当用户点击链接时,没有任何反应! 数据库告诉我opstatus仍然= s 3,并且没有错误消息。
任何人都可以告诉我我做错了什么吗? 谢谢!
以下是我的routes.rb文件的全部内容
Rails.application.routes.draw做
get 'sheetread/show'
get 'sheetread' => 'sheetread#show'
get 'users/index'
get 'users/new'
get 'welcome/index'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
resources :users
resources :spreadsheets
resources :projects do
resources :comments
end
root 'welcome#index'
答案 0 :(得分:0)
<强>更新强>
将newmeth
操作添加到路由文件中:
resources :projects do
get :newmeth
resources :comments
end
此外,我强烈建议您阅读Rails routing guide。
而不是
<%= link_to 'Close', projects_path, :action => :newmeth %>
尝试
<%= link_to 'Close', newmeth_projects_path %>
根据您设置路线的方式,它可能无效,您可以在问题中粘贴相关的行吗?