意外的keyword_end,期待输入结束

时间:2013-11-07 20:40:04

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我收到错误:syntax error, unexpected keyword_end, expecting end-of-input。通常我会问这样的问题,但我根本不能错误!这是我的完整型号代码:

错误出现在方法add_gelesen第48行:end感谢社区!

class Message < ActiveRecord::Base
    attr_accessor :current_user, :current_department
    before_save :set_sender, :add_gelesen

    def set_sender
        self.sender_username = @current_user.username
        self.sender_model = @current_user.class.to_s
        self.sender_id = @current_user.id
        if (recipient_username != @current_department.username) && (recipient_model == 'Department')
            self.privat = 0
            if Object.const_get(recipient_model).find(recipient_id).has_kontakt?(@current_department.id) == false
                Object.const_get(recipient_model).find(recipient_id).kontakt(@current_department.id)
            end
        end
    end

def add_gelesen
    if self.privat == true

        if recipient_username == @current_department.username
            f = JSON.parse(@current_department.gelesen)
            @current_department.employees.each.do |c|
                w = f["#{c.username}"].nil? ? 0 : f["#{c.username}"]
                f["#{c.username}"] = w + 1
            end
            @current_department.update_column(:gelesen, f.to_json)
        else
            f = JSON.parse(@current_user.gelesen)
            w = f[self.recipient_username].nil? ? 0 : f[self.recipient_username]
            f[self.recipient_username] = w +  1
            @current_user.update_column(:gelesen, f.to_json)
        end

    else
        u = Object.const_get(self.recipient_model).find(self.recipient_id)
        f = JSON.parse(u.gelesen)
        @current_department.employees.each.do |c|
            w = f["#{c.username}"].nil? ? 0 : f["#{c.username}"]
            f["#{c.username}"] = w + 1
        end
        Department.find(self.recipient_id).employees.each.do |g|
            w = f["#{g.username}"].nil? ? 0 : f["#{g.username}"]
            f["#{g.username}"] = w + 1
        end   
        u.update_column(:gelesen, f.to_json)
    end
end
end

1 个答案:

答案 0 :(得分:8)

其中带有do的行不应该包含.

@current_department.employees.each.do |c|

应该是

@current_department.employees.each do |c|

do是开始一个块的关键字,而不是each

上的方法