0

プロジェクトというモデルがあり、3 に設定したい属性 :opstatus があります (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 do

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 に答える