2017-08-10 177 views
3

所以基本上我想用一個簡單的控制器方法沒有PARAMS靜態頁面獨立的控制器方法:Ruby on Rails的 - 爲

def create_message 
    @a = Message.create(:body => "Hello") 
    @a.save 
    redirect_to messages_path 
end 

但我從主頁路由,頁面控制器:

def home 
end 

我在搞清楚什麼在routes文件寫一個問題,我已經試過幾乎所有的東西,包括但不限於:

resources :pages do 
    collection do 
    get :create_message 
    end 
end 

瀏覽次數:

<%= link_to "Create Message", create_message_pages_path, class:"btn btn-primary"%> 

錯誤:

The action 'create_message' could not be found for PagesController 
+1

這是什麼問題? –

+0

@IgorDrozdov @IgorDrozdov我得到的錯誤是:行動'create_message'無法找到PagesController –

+0

@ J.Foe你需要在'PagesController'中定義'create_message'方法 – MrYoshiji

回答

0

可以創建自定義路線create_message這樣

然後link_to是:

#view 
<%= link_to "Create Message", create_message_path, class:"btn btn-primary"%> 
+0

我仍然得到相同的錯誤:無法找到頁面控制器的操作'create_message' –

+0

是在** pages_controller.rb中定義的** create_message? –

+0

在哪個控制器中是'create_message'操作? – meshin

0

我遇到過這個問題一次,在我的情況下,它是定義私人控制器塊下的行動給了「行動無法找到錯誤」。從你的問題中,我發現在定義路徑並在視圖文件中使用它沒有問題。請檢查以確定create_message操作是否在pages_controller.rb文件中的專用塊下定義。希望能幫助到你。