ruby-on-rails - 迭代多个对象 form_forrails

标签 ruby-on-rails ruby ruby-on-rails-3 form-for

执行摘要

  1. 目标:我正在创建一个管理仪表板,可通过 form_for 进行编辑
  2. 我有一个 Post 模型,它有两个属性:主题和标题
  3. 我创建了一个管理 Controller ,它具有索引操作
  4. 我收到一条错误消息,声称找不到未定义的方法 ActionView 的“主题”:FormBuilder:0x000000031e02c8>
  5. 显然我有一个“主题”项目!我现在正盯着它......并且咒骂。

亲爱的 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/

相关文章:

mysql - Rails 4 + ActiveRecord : How to merge data from 2 models?

ruby-on-rails - Rails 3 和 mongo db (mongoid) 中的基本文本搜索

jquery - Ruby on Rails 实时搜索(过滤)

javascript - 停止 Rails 3.2 渲染 html.erb 和 js.erb

ruby-on-rails - 电子邮件验证错误在 obj.errors.full_messages 中出现两次(Rails 3.2、Devise、RSpec)

ruby - 您如何检查 Capistrano 中是否存在文件(在远程服务器上)?

ruby-on-rails - 学习 Ruby 和 Ruby on Rails

ruby-on-rails - 无法在 rails 3 中使用任何时候运行 cronjob

ruby-on-rails - Rails open-uri 在路径上中断

ruby-on-rails - Rails - 设计,如何禁用一些默认路由?