2016-11-13 40 views
0

我想了解如何在我的Rails 5应用程序中使用命名空间。Rails 5 - 简单窗体 - 名称空间资源

我有一个名为randd_fields的资源。

在数据库中的表被称为:

randd_fields 

我model.rb文件有:

randd.rb

module Randd 
    def self.table_name_prefix 
    'randd_' 
    end 
end 

class Randd::Field < ApplicationRecord 
end 

控制器被称为:

视图以包含views/rannd/fields的文件组织

在我的_form.html.erb中,我试图找到一种方法来获取表单来呈现。

我已经试过其中的每一个。

<%= simple_form_for(@field), multipart: true do |f| %> 
<%= simple_form_for(@randd, @field), multipart: true do |f| %> 
<%= simple_form_for([:randd, @field]), multipart: true do |f| %> 

它们中的每给出一个错误:

第一,给出一个错误,指出: 未定义的方法`模型名称”的零:NilClass

第二2给出一个错误,指出:

syntax error, unexpected tLABEL 
...r([:randd, @field]), multipart: true do |f| @output_buffer.s... 

如何使用命名空间资源的新路径?

我的路线显示:

rake routes | grep field 
        import_randd_fields POST  /randd/fields/import(.:format)           randd/fields#import 
         randd_fields GET  /randd/fields(.:format)             randd/fields#index 
             POST  /randd/fields(.:format)             randd/fields#create 
         new_randd_field GET  /randd/fields/new(.:format)            randd/fields#new 
        edit_randd_field GET  /randd/fields/:id/edit(.:format)          randd/fields#edit 
          randd_field GET  /randd/fields/:id(.:format)            randd/fields#show 
             PATCH /randd/fields/:id(.:format)            randd/fields#update 
             PUT  /randd/fields/:id(.:format)            randd/fields#update 
             DELETE /randd/fields/:id(.:format)            randd/fields#destroy 

我不能找到一种方式来获得的形式来呈现,以创建一个新的randd_field实例。

回答

0

请尝试以下

<%= simple_form_for @field, multipart: true do |f| %> 
+0

这给了这个错误:未定义的方法'randd_randd_fields_path”为#<#<类别:0x007f8095407988>:0x007f809c2633a0> 你是什么意思? randd_fields_path – Mel

+0

好吧,我明白了,这种形式是为了创建一个新的领域,对吧?那么你可以添加你的'fields_controller#create'代码吗? – phamhoaivu

+0

我编辑了答案,你可以试试,并添加错误消息和你的'fields_controller#create'代码? – phamhoaivu

相关问题