Ассоциация Rails - трудности с получением формы для работы - PullRequest
0 голосов
/ 09 мая 2011

У меня есть модель Member, принадлежащая пользователю

class Member < ActiveRecord::Base

    attr_accessible :name
    belongs_to :user

end


class User < ActiveRecord::Base

    attr_accessible :name
    has_many :members, :dependent => :destroy

end

В моем контроллере Members у меня есть

class MembersController < ApplicationController

  def create
    @user = User.find(params[:user_id])
    @member  = @user.members.build(params[:member])
    if @member.save
      flash[:success] = "Member created!"
      redirect_to root_path
    else
      render 'pages/home'
    end
  end
end

В /app/views/users/show.html.erb Ihave

<%= form_for @member do |f| %>

  <div class="field">
    <%= f.text_area :name %>
  </div>
  <div class="actions">
    <%= f.submit "Submit" %>
  </div>
<% end %>

Но я получаю следующую ошибку: неопределенный метод `имя_модели 'для NilClass: Class

Extracted source (around line #18):

15: 
16: <h1 class="member">What's up?</h1>
17: 
18: <%= form_for @member do |f| %>

Мое действие show в контроллере Users:

  def show
      @user = User.find(params[:id])
      @members = Member.new
      @title = @user.name
  end

Который также содержит метод 'new'

Я попытался изменить: user_id на: id в MembersController, но это тоже не работает.Что я тут не так делаю?

заранее спасибо

Ответы [ 2 ]

0 голосов
/ 20 апреля 2012

Мне нужно было передать @ user.id как скрытое поле в форме, чтобы ассоциация работала!

0 голосов
/ 10 мая 2011

Попробуйте заменить @members = Member.new на @member = Member.new ;-)!

...