0

我不确定如何从控制器调用模型方法

在事件控制器查询中运行

 class StaticPagesController < ApplicationController
    def self.all_published()
       events = 'SELECT  user_id FROM events'
       where("dotw = DAYNAME(curdate())")
    end
  end

页面控制器

  def index
    @published_posts = Event.all_published.paginate()
  end

看法

  <% if @published_posts.any? %>
     <ol class="microposts">
       <%= render partial: 'shared/feed_item', collection: @published_posts %>
    </ol>
    <%= will_paginate @published_posts %>
 <% end %>
4

1 回答 1

1

Rails 遵循“胖模型,瘦控制器”的惯例。这意味着您应该将业务逻辑(例如查询)放入模型中。

在您的情况下,该all_published方法应该进入您的Event模型,例如:

class Event
  def self.all_published
    where('your sql query here')
  end
end

然后调用:

Event.all_published

Rails 控制器应该只负责渲染/重定向和设置视图变量。

于 2013-08-27T05:55:00.523 回答