【问题标题】:Rails 5 - Simple Form - namespaced resourcesRails 5 - 简单形式 - 命名空间资源
【发布时间】:2016-11-13 04:42:01
【问题描述】:

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

控制器被调用:

视图被组织在带有视图/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| %>

他们每个人都给出一个错误:

第一个,给出一个错误,上面写着: nil:NilClass 的未定义方法“model_name”

第二个 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 实例的方法。

【问题讨论】:

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


    【解决方案1】:

    试试下面的

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

    【讨论】:

    • 这给出了这个错误:undefined method `randd_randd_fields_path' for #:0x007f809c2633a0> 你是说吗? randd_fields_path
    • 好的,我明白了,这个表格是用来新建一个字段的吧?那么您能否添加您的fields_controller#create 代码?
    • 我编辑了答案,您可以试试并添加错误消息和您的fields_controller#create 代码吗?
    猜你喜欢
    • 2017-03-17
    • 2011-07-06
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多