所以基本上我想使用一个没有参数的简单控制器方法:
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
答案 0 :(得分:0)
您可以为create_message
创建自定义路线
#routes.rb
get 'create_message' => 'pages#create_message', as: 'create_message'
然后link_to
将是:
#view
<%= link_to "Create Message", create_message_path, class:"btn btn-primary"%>
答案 1 :(得分:0)
我遇到过这个问题一次,在我的情况下,它是在控制器的私有块下定义动作给了&#34;动作找不到错误&#34;。从您的问题我看到定义路由并在视图文件中使用它没有问题。请检查是否在pages_controller.rb文件中的私有块下定义了create_message操作。希望它有所帮助。