【发布时间】:2017-08-10 13:59:40
【问题描述】:
所以基本上我想使用一个没有参数的简单控制器方法:
def create_message
@a = Message.create(:body => "Hello")
@a.save
redirect_to messages_path
end
但我是从主页路由,页面控制器:
def home
end
我在确定在路由文件中写入什么时遇到问题,我几乎尝试了所有方法,包括但不限于:
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
【问题讨论】:
-
问题出在哪里?
-
@IgorDrozdov 我得到的错误是:找不到 PagesController 的操作“create_message”
-
@J.Foe 你需要在你的
PagesController中定义create_message方法 -
@MrYoshiji 它在 pages_controller 中
-
我非常怀疑这一点。如果 Rails 路由器不知道该路径,您将获得
Routing Error。如果路径可以被 Rails 路由器解析,但动作没有在适当的控制器中定义,它将引发<action> could not be found for <Controller>错误。
标签: ruby-on-rails ruby methods routes controllers