尝试在属于另一个对象的对象上调用方法时出错

时间:2015-09-19 00:13:21

标签: ruby ruby-on-rails-4

我有recs,属于列表,列表,有很多recs。我想弄清楚为什么我不能打电话给我的' to_do'属于列表的recs下面的方法?这是第二行视图代码。我收到以下错误:

SQLite3 :: SQLException:near")":语法错误:SELECT" recs"。* FROM" recs"在哪里" recs"。" list_id" =? AND(完成='假'))

Rec Model

class Rec < ActiveRecord::Base
  belongs_to :list
  scope :to_do, lambda {where("done = ?)", 'false')}
end

列表模型

class List < ActiveRecord::Base
      has_many :recs
end

控制器

  def index
    @recs = Rec.to_do
    @lists = List.all
    @networks = Network.all
  end

查看

  <% network.lists.eat_lists.each do |list| %>
    <% if list.recs.to_do.present? %>
      <%= list.name %></br>
      <% list.recs.each do |rec| %>
        <%= rec.name.split(',').first %>
        <%= rec.notes %>
        <%= rec.done %>
        <%= link_to 'Done', marked_as_done_url(rec), method: :patch %></br>
        <%= link_to 'Delete', rec, method: :delete %></br>
      <% end %>
    <% end %>
  <% end %>

1 个答案:

答案 0 :(得分:0)

将您的范围更改为此scope :to_do, lambda {where("done = ?", false)}scope :to_do, lambda {where(done:false},请注意我已删除字符串中的一个结束括号