Ruby on rails 如何允许为已注册和未注册的用户创建新对象?

Ruby on rails 如何允许为已注册和未注册的用户创建新对象?,ruby-on-rails,Ruby On Rails,在我的日历应用程序中,已注册和未注册的用户都可以创建会议。在我的会议中\u控制器: def new @meeting = Meeting.new @meeting = current_user.meetings.new(meeting_params) if current_user end def create respond_to do |format| if @meeting.save format.html {

在我的日历应用程序中,已注册和未注册的用户都可以创建会议。在我的会议中\u控制器

def new
    @meeting = Meeting.new
    @meeting = current_user.meetings.new(meeting_params) if current_user 
    
  end
def create
     
    respond_to do |format|
      if @meeting.save
        format.html { redirect_to @meeting, notice: 'Meeting was successfully created.' }
        format.json { render :show, status: :created, location: @meeting }
      else
        format.html { render :new }
        format.json { render json: @meeting.errors, status: :unprocessable_entity }
      end
    end
  end
def meeting_params
      params.require(:meeting).permit(:name, :start_time)
    end
因此,如果当前_用户存在,它将创建当前_用户.meetings.new(meeting_参数),如果不存在,它将只创建一个没有任何用户的meeting.new。但是,它不起作用,我得到一个错误:

nil:NilClass的未定义方法“save”

respond_to do |format|
  if @meeting.save
    format.html { redirect_to @meeting, notice: 'Meeting was successfully created.' }
    format.json { render :show, status: :created, location: @meeting }
  else
如果有一个当前的用户,它工作得很好,但是如果我提到它只是一个新的会议,为什么没有用户的会议定义为“nill”?我怎样才能让它工作?
谢谢大家!

更改控制器代码,如下所示:

def new
  @meeting = Meeting.new 
end
def create
   @meeting = Meeting.new(meeting_params)  #edit
  @meeting.user_id = current_user.id if current_user
  respond_to do |format|
    if @meeting.save
      format.html { redirect_to @meeting, notice: 'Meeting was successfully created.' }
      format.json { render :show, status: :created, location: @meeting }
    else
      format.html { render :new }
      format.json { render json: @meeting.errors, status: :unprocessable_entity }
    end
  end
end
def meeting_params
  params.require(:meeting).permit(:name, :start_time, :user_id)
end

@瓜拉夫,谢谢你,但没用,同样的错误。(@Guarav是的,这很有帮助!谢谢!