【问题标题】:How to pass from model to controller Ruby on Rails如何从模型传递到控制器 Ruby on Rails
【发布时间】:2013-08-27 05:09:56
【问题描述】:

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

在事件控制器查询中运行

 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 %>

【问题讨论】:

    标签: model controller ruby-on-rails-4


    【解决方案1】:

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

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

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

    然后调用:

    Event.all_published
    

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

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 2012-04-20
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      相关资源
      最近更新 更多