DaveG
DaveG

Reputation: 1203

Using checkboxes in a belongs to and has one relationship

On the "show" page of my "Account" model I a have a "Checklist" model. I want to be able to check on/off the each of the boolean values on the checklist within the account's show page. I'm getting the following error:

NoMethodError in Accounts#show
undefined method `model_name' for NilClass:Class

Upvotes: 0

Views: 81

Answers (1)

muttonlamb
muttonlamb

Reputation: 6491

I'm not sure I fully understand your view logic, but I think what you need to be doing is building the checklist before you get to the create section of the controller.

e.g.

  def show
    @account = Account.find(params[:id])
    @checklist = @account.build_checklist
  end

This will allow you to call the attributes in the view you are displaying.

You can also adjust the create method to, using new instead of build

def create
  @account = Account.find(params[:account_id])
  @checklist = @account.checklist.new(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 error saving your comment (empty comment or comment way to long).') }
      end
  end
end

Hope this helps :)

Upvotes: 2

Related Questions