执行摘要
- 目标:我正在创建一个管理仪表板,可通过 form_for 进行编辑
- 我有一个 Post 模型,它有两个属性:主题和标题
- 我创建了一个管理 Controller ,它具有索引操作
- 我收到一条错误消息,声称找不到未定义的方法 ActionView 的“主题”:FormBuilder:0x000000031e02c8>
- 显然我有一个“主题”项目!我现在正盯着它......并且咒骂。
亲爱的 friend 们,
正如你所看到的,我的 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
最佳答案
form_for block 的参数不是post,而是一个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>
关于ruby-on-rails - 迭代多个对象 form_forrails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30311554/