Ruby on rails RubyonRails控制器语法
我是Rails新手,刚刚完成了我的第一个solo项目,但我似乎遇到了一个语法错误,一个常量没有初始化。我得到了几个,但每个似乎都有不同的原因……我不太确定我是如何一直得到相同的错误和不同的原因:Ruby on rails RubyonRails控制器语法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是Rails新手,刚刚完成了我的第一个solo项目,但我似乎遇到了一个语法错误,一个常量没有初始化。我得到了几个,但每个似乎都有不同的原因……我不太确定我是如何一直得到相同的错误和不同的原因: uninitialized constant DatastringsController::Datastrings 数据串控制器: class DatastringsController < ApplicationController def new end def creat
uninitialized constant DatastringsController::Datastrings
数据串控制器:
class DatastringsController < ApplicationController
def new
end
def create
@datastrings = Datastrings.new(datastrings_params) #ERROR returned on this line
@datastrings.save
redirect_to @datastrings
end
def show
@datastrings = Datastrings.find(params[:id])
end
private
def datastrings_params
params.require(:datastrings).permit(:title, :text)
end
end
我相信我的表格是正确的:
<%= form_for :datastrings, url: datastrings_path do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :text %><br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
您遇到的主要问题如下:
<%= form_for :datastrings, url: datastrings_path do |f| %>
-
你还需要用单数来命名你的模型
现在来看,您的主要问题似乎是您将模型命名为复数形式
这样做不好的原因是,当您加载Rails时,它将加载所有模型,因此,允许您通过引用它们的类名来调用它们。如果一个模型是复数的,我认为它不会正确加载它,从而导致您突出显示的错误
如果您将模型命名为以下名称,则应该更好:
#app/models/datastring.rb
Class Datastring < ActiveRecord::Base
end
模型类名称应该是单数的。将Datastring更改为Datastring。同时也不要忘记更改模型文件名。建议您按照教程或其他方式操作。我经常听到的一个例子是。谢谢你的解释。这解决了我的问题,但据我所知,我可能错了,我还没有生成一个模型,只是一个控制器数据字符串,我正试图将表单数据存储在其中。
#app/models/datastring.rb
Class Datastring < ActiveRecord::Base
end