Rails 5 - 简单表单 - 命名空间资源

时间:2016-11-13 04:42:01

标签: ruby-on-rails ruby namespaces simple-form

我正在尝试学习如何在我的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| %>

每个都会出错:

第一个,给出了一个错误:     未定义的方法`model_name'代表nil: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实例。

1 个答案:

答案 0 :(得分:0)

尝试以下

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