Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:来自不同控制器的访问模型_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails:来自不同控制器的访问模型

Ruby on rails Rails:来自不同控制器的访问模型,ruby-on-rails,ruby,Ruby On Rails,Ruby,我知道以前有人问过这个问题,他们说“模型独立于控制器”。所以,按照我为其他模型编写的相同代码,我只是重命名了我的工作代码,以适应我的新模型。但是我得到一个错误未定义的方法“userimages\u path”这里是我正在使用的代码 模型为userimage,控制器为uploads 控制器/上传\u Controller.rb def new @userimage = Userimage.new end Model/userimag

我知道以前有人问过这个问题,他们说“模型独立于控制器”。所以,按照我为其他模型编写的相同代码,我只是重命名了我的工作代码,以适应我的新模型。但是我得到一个错误
未定义的方法“userimages\u path”
这里是我正在使用的代码

模型为
userimage
,控制器为
uploads

控制器/上传\u Controller.rb

  def new
    @userimage = Userimage.new
  end                       

Model/userimage.rb是一个空文件

Views/uploads/new.html.erb(此行抛出错误。)

我多次使用
rakedb:migrate
来确保我确实迁移了数据库,我认为这可能是它找不到
Userimage
的原因


我在这里做错了什么/遗漏了什么?

这是Rails的魔法,当您不为
表单指定第二个选项(
url
)时,Rails会尝试设置它,在您的路由中,
由Rails转换为
,没有这样的
\u路径
助手。 要解决此问题,请运行
bundle rake routes
并设置正确的
url
选项

请尝试以下代码:

看法
您能否显示覆盖用户映像的模式文件/迁移?您能否确认您的模型是
Userimage
而不是
Userimage
create_table“userimages”,force::cascade do | t | t.text“description”t.string“title”t.datetime“created_at”,null:false t.datetime“updated_at”,null:false end
我查看了模型和其他每个文件,发现它是Userimages而不是Userimages。对我来说,Rails是一种陌生的技术。我印象深刻的是,它能自动为我做很多事情,而且只需要更少的代码。。。。哦,哦!我的灯泡刚刚亮了!所以rails是根据model/crud而不是controller/crud?进行路由的。很有趣。它起作用了!!我搞不懂它为什么要寻找userimages\u路径。认为以表单形式发送到新的上传是足够聪明的,所以我不想看那里!标记为答案!非常感谢。
  <%= form_for @userimage do |f|%>
resources :uploads
 <%= form_for @userimage, url: "/uploads" do |f|%>
def create
  ...
end