【发布时间】:2015-05-18 19:40:48
【问题描述】:
执行摘要
- 目标:我正在创建一个可由 form_for 编辑的管理仪表板
- 我有一个 Post 模型,它有两个属性:主题和标题
- 我创建了一个管理控制器,它有一个索引操作
- 我收到一个错误,声称找不到未定义的方法 ActionView 的“主题”:FormBuilder:0x000000031e02c8>
- 显然我有一个“主题”项目!我现在正盯着它……咒骂。
亲爱的朋友们,
如你所见,我的 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 %>
方案.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
【问题讨论】:
-
请出示您的
Post模特,models/post.rb -
另外,在索引页的第 2 行,您应该使用
<%而不是<%= -
类发布 <:base attr_accessor :title :subject end>
-
为了清楚起见将其发布在问题中
-
mssergeant 已回答您的问题。 form_for 产生 FormBuilder 而不是 Post
标签: ruby-on-rails ruby ruby-on-rails-3 form-for