我正在尝试使用管理名称空间在rails form_for中传递多个对象。 我收到一个错误,指出Array:Class的未定义方法“ model_name”

这是我要运行的视图:

<%= form_for [:admin, @observation_reads] do |f|  %>
    <div class="table-responsive">
      <table class="table table-bordered table-striped table-hover">
    <% @observation_reads.each do |observation_read| %>
           <tr>
             <ul class="admin-employee">
               <td><%= check_box_tag "observation_read_ids[]", observation_read.id %></td>
               <td><li><%= observation_read.employee_id_observer %></li></td>
               <td><li><%= select_tag(observation_read.id, options_for_select(@readers))  %></li></td>
               <td><li><%= select_tag(observation_read.id, options_for_select(@readers))  %></li></td>
               <td><li><%= select_tag(observation_read.id, options_for_select(@readers))  %></li></td>
             </ul>
           </tr>
       <% end %>
      </table>
     </div>
   <%= f.submit %>
 <% end %>

我希望能够一次传递多个对象,以便可以一次更新所有对象。 我认为有几个问题正在发生。 我不确定为什么在控制器中可以调用所有观察值的情况下拥有NilClass的原因:

def index
   @observation_reads = ObservationRead.all
   @readers = Reader.all.map { |reader| [reader.first_name, reader.id] }
end

我有一种感觉,如果我通过了这个错误,我将遇到一个路由问题,因为当我使用form_tag重做此no route matches时,如果我匹配了我的路由,我将no route matches路由。

namespace :admin do
  get '', to: 'dashboard#index', as: '/'
  resources :readers, only: [:index]
  resources :observations
end

我的路线在这里: http : //imgur.com/o2o7SHT

任何人都可以帮忙:

  1. 如何通过此错误消息
  2. 以形式传递多个对象
  3. 根据要传递的这些对象将表单更新为。

这是我正在使用的视图。 我在这篇文章中简化了它。

http://imgur.com/pjeANCB

===============>>#1 票数:1

由于将Array传递给form_for ,因此出现错误。

<%= form_for [:admin, @observation_reads] do |f|  %>

你应该通过实例ObservationRead而不是ObservationRead.allform_for

form_for什么作用?

创建一个表单,该表单允许用户创建或更新特定模型对象的属性。

===============>>#2 票数:0 已采纳

像这样做,

  form_for :observations, url: [:admin, :observations] do

要么

   form_for :observations, url: admin_observations_path

  ask by gary1410 translate from so

未解决问题?本站智能推荐:

1回复

具有多个状态的资源的Form_for命名空间路由

我有一个具有不同状态的Blog模型。 为了保持控制器的瘦身,并遵循每个控制器仅具有CRUD操作的约定,我遵循DHH的命名空间控制器模式,并命名了Blog控制器。 现在,我有一个Blogs::NewDraft控制器,一个Blogs::AwaitingApproval控制器和一个Blogs:
1回复

form_for帮助方法上的嵌套命名空间 - Rails

大家好,所以我有两个名称空间,一个嵌套在另一个表单中 管理员(命名空间)内部管理员我有博客(命名空间) 我知道我可以将下面的命名空间放在表单中 - 用于帮助程序。 但我怎么能在前面加上前缀:admin namespace ?
2回复

获取要传递给form_for的对象的ID

我正在尝试找到我的时间表ID以传递给form_for 这是我的控制器 这是我认为的form_for: 需要发生的是,时间表ID需要传递到form_for中,以便条目可以具有时间表ID。 我有用户,时间表和条目。 用户has_many时间表,时间表属于用户,并且用户有
1回复

遍历多个对象form_for rails

执行摘要 目标:我正在创建一个可通过form_for编辑的管理仪表盘 我有一个Post模型,它具有两个属性:Subject和Title 我创建了一个具有索引操作的管理控制器 我收到一个错误,声称它找不到ActionView的未定义方法“主题”:FormBuild
1回复

让Pundit授权在Rails 5上使用命名空间

关于让Rails 5和Pundit授权使用命名空间的问题。 使用Pundit,在控制器中我想使用policy_scope([:admin, @car] ,它将使用位于以下位置的Pundit策略文件: app/policies/admin/car_policy.rb 。我在尝试使用Pundi
1回复

Ruby on Rails:使用form_for将参数传递给控制器​​以创建/初始化对象

尝试使用form_for创建新对象“ Investor”时遇到各种错误。 我只设置了一个属性(:name)使其设置得尽可能简单,但我认为我没有正确传递参数……或者是否需要在create.html.rb文件中定义模板? ...或者应该在config / routes中添加一些内容来定义创建
1回复

Rails 4-通过设计使用命名空间STI模型

我的rails应用程序具有5个扩展User用户模型。 所有这些都具有名称空间User::UserTypeHere 。 当我尝试注销应用程序时,devise尝试访问模型,就好像它们属于顶层名称空间一样,并且出现以下错误: 如何以一种能够识别我的命名空间模型的方式来设置路线? ro
1回复

使用Rails constantize inflector调用命名空间类

我有一个需要初始化的类,但它的命名空间如下: 但是我在rake任务中从args中调用它,所以它以字符串形式出现: 很明显,如果我像这样调用rake任务: 我的任务返回: 但是我怎样才能让它在另一个方法之前链接的命名空间内运行,如下所示: 从作为输入提供的字
2回复

使用命名空间路由时路由错误

当路由被命名空间时,你如何处理form_for ? 我得到一些奇怪的路线错误,我真的希望得到。 例如,假设您在routes.rb中的:admin命名空间中有一个名为Admin::CompaniesController的控制器: 大多数工作都很好,但是当我渲染一个新表单时出现错误。
1回复

使用命名空间类的多态关联

我正在使用Ruby on Rails 3,并且想使用命名空间类设置多态关联。 迁移是: 类是: 我必须如何为上述类编写代码关联 (使用:class_name => "Users:User", ... ?) ,以便自动创建和自动销毁关联的模型记录,“映射” users_