所以,我尝试了一些步骤进入轨道并在SO周围搜索,但无法找到任何答案。我一看到NoMethodError undefined method
,就会不断为第1行获取/tswhois/new
。怎么了?
控制器/ tswhois_controller.rb
class TswhoisController < ApplicationController
def index
@tswhois = Tswhois.all
end
def new
@tswhois = Tswhois.new
end
end
配置/ routes.rb中
Rails.application.routes.draw do
resources :tswhois
end
视图/ tswhois / new.html.erb
<% form_for (@tswhois) do |f| %>
<p>
<%= f.label :url %>
<%= f.text_field :url %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
控制台
rails console
Loading development environment (Rails 4.1.8)
2.1.5 :001 > Tswhois.count
(10.6ms) SELECT COUNT(*) FROM `tswhois`
=> 0
答案 0 :(得分:0)
您可以复制并粘贴整个错误消息吗?另请尝试:<%= form_for(@tswhois) do |f| %>
没有空格且带有=符号
答案 1 :(得分:0)
将资源添加到routes.rb后,您是否重启了服务器?您为路线文件提供的代码缺失&#39; end&#39;在它的最后。
答案 2 :(得分:0)
记住rails中的约定:模型名称是单数,即最后没有s
或es
。路由是围绕您的模型名称构建的。您的错误页面建议Rails无法获取操作的正确路由,在此示例中为new
操作。
答案 3 :(得分:0)
查看您的views/tswhois/new.html.erb
代码。您发布的代码段可能来自views/tswhois/_form.html.erb
它可能有一行<%= link_to 'something', tswhois_index_path %>
将其更改为
<%= link_to 'something', tswhois_path %>
事情就是这个名字&#39; tswhois&#39;由于单个实例和实例数组的单数和复数约定,因此将会相当混乱。