关于 RoR 的关闭声明

Close statements on RoR

我正在尝试使用 Mongoid 在 Rails 上的用户之间创建联系人。控制台显示一个语法错误:

MyApp/app/controllers/contact_controller.rb:18: syntax error, unexpected end-of-input, expecting keyword_end

这是控制器:

class ContactController < ApplicationController
  def addNew
    @newFriend = params[:username]
    puts "***value of @newFriend***"
    puts @newFriend
    puts "***end****"
    Contact.where(owner: current_user).where(friendlist: params[:username]) do |contact|
      puts "***value of @contactAlreadyExists***"
      puts contact
      puts "***end****"
      if contact == nil
        Contact.find_or_create_by(owner: current_user) do |contact|
          contact.push(friendlist: params[:username])
      end
    redirect_to "/"
  end
end

这是模型:

class Contact
  include Mongoid::Document
  include Mongoid::Timestamps


  field :owner, :type => String
  field :friendlist, :type => Array
  embedded_in :users
end

您的控制器中缺少 end。检查下面的语法。

class ContactController < ApplicationController
  def addNew
    Contact.where(owner: current_user).where(friendlist: params[:username]) do |contact|
      ....

      if contact == nil
        Contact.find_or_create_by(owner: current_user) do |contact|

        <-- missing end  Contact.find_or_create_by ... do |contact|

       end <--- Okay with if block

     <-- missing end Contact.where ... do |contact|

    redirect_to "/"
  end  <--- Okay with fucntion addNew
end <--- Okay with ContactController