【发布时间】:2013-05-12 04:33:00
【问题描述】:
在我的“帐户”模型的“显示”页面上,我有一个“清单”模型。我希望能够在帐户的显示页面中检查清单上的每个布尔值。 我收到以下错误:
NoMethodError in Accounts#show
undefined method `model_name' for NilClass:Class
-
app/models/account.rb
class Account < ActiveRecord::Base has_one :checklist end -
app/models/checklist.rb
class Checklist < ActiveRecord::Base belongs_to :account belongs_to :user validates :account_id, :presence => true validates :user_id, :presence => true end -
app/models/user.rb
class User < ActiveRecord::Base has_many :checklists end -
app/controllers/account_controller.rb
class AccountController < ApplicationController def show @account = Account.find(params[:id]) @checklist = @account.checklist end end -
app/views/account/show.html.erb
<% simple_form_for(@checklist) do |checklist| %> <div> <%= checklist.user.email %> <div class="pull-right"> <%= checklist.created_at.strftime("%b. %d %Y") %> </div></br> <ul> <li><%= checklist.contract_signed %></li> <li><%= checklist.contract_details %></li> <li>…</li> </ul> <%= f.submit "Update", class: 'btn' %> </div> <% end %> -
app/controllers/checklists_controller.rb
class ChecklistsController < ApplicationController before_filter :authenticate_user! def create @account = Account.find(params[:account_id]) @checklist = @account.checklist.build(params[:checklist]) @checklist.user = current_user respond_to do |format| if @checklist.save format.html { redirect_to(@account, :notice => 'Checklist Saved.') } else format.html { redirect_to(@account, :notice => 'There was an errors') } end end end def destroy @checklist = current_user.checklists.find(params[:id]) @account = Account.find(params[:account_id]) @checklist.destroy respond_to do |format| format.html { redirect_to @account } end end end
【问题讨论】:
-
我认为问题是@checklist 为零
-
我知道它是零。我不确定如何修复它,因为在创建之前它总是为零。
标签: ruby-on-rails forms checkbox associations