0

我有一个名为项目的模型,它有一个属性: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'
4

1 回答 1

0

更新

newmeth操作添加到您的路由文件:

resources :projects do
  get :newmeth
  resources :comments
end

另外,我强烈建议您阅读Rails 路由指南


代替

<%= link_to 'Close', projects_path, :action => :newmeth %>

尝试

<%= link_to 'Close', newmeth_projects_path %>

根据您设置路线的方式,它可能不起作用,您可以将相关行粘贴到您的问题中吗?

于 2015-03-23T19:55:16.803 回答