2015-05-18 2 views
2

Исполнительное резюмеИтерации через несколько объектов form_for рельсы

  1. Цель: Я создаю панель администратора, редактируемую с помощью form_for
  2. У меня есть модель Post, которая имеет два атрибута: Предмет и Название
  3. Я создал контроллер администратора, который имеет действие индекса
  4. Я получаю сообщение об ошибке, не могу найти неопределенный метод `subject 'для ActionView: FormBuilder: 0x000000031e02c8>
  5. У меня есть предмет «предмет»! Я смотрю на это прямо сейчас ... и ругаюсь.

Дорогие друзья,

Как вы можете видеть, у меня есть в моем post.title, post.subject; Я перебираю каждый @ posts.each, а затем передаю каждому отдельному объекту форму! Что дает претензии, у меня нет предмета. Это так странно?

Модель:

class Post < ActiveRecord::Base 
    attr_accessor :title, :subject 

end 

маршруты:

resources :admin_dashboards 

admin_dashboards_controller.rb

class AdminDashboardsController < ApplicationController 

    def index 
    @posts = Post.all() 
    end 

Вид: index.html.erb

<tr> 
<% @posts.each do |post| %> 
<%= form_for post do |single_post| %> 
<td> <%= single_post.subject %> </td> 
<td> <%= single_post.submit %> </td> 
</tr> 
<% end %> 

<% end %> 

scheme.rb

create_table "posts", force: true do |t| 
    t.text  "title" 
    t.text  "subject" 
    t.text  "url" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 
+0

Пожалуйста, покажите ваш '' 'модель Post''', модели/post.rb –

+0

Кроме того, в строке 2 вашей страницы индекса, вы должны использовать' '' <% '' ' не '' '<% =' '' –

+0

класс Post FlyingV

ответ

4

Параметр form_for блок не размещать, это FormBuilder. Попробуйте что-то вроде этого:

<tr> 
    <% @posts.each do |post| %> 
    <%= form_for post do |single_post| %> 
     <td> <%= single_post.text_field :subject %> </td> 
     <td> <%= single_post.submit %> </td> 
    <% end %> 
    <% end %> 
</tr> 
+0

8 часов ... потрачено впустую :( – FlyingV

+0

Эти часы не пропали даром, если вы что-то узнали. Вы никогда не повторите эту ошибку :) – msergeant

+0

Большое вам спасибо за помощь. Надеюсь, я смогу вернуть благосклонность обществу, когда я менее ужасен. Я разочарован такой глупой ошибкой. – FlyingV

Смежные вопросы