- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果我在 application_controller
中:
def calendar_sidebar
@missed_dates_by_date = current_user.missed_dates.group_by {|i| i.date_missed.to_date} if current_user # I'm trying to call `missed_dates` method `date_missed`
@date = params[:date] ? Date.parse(params[:date]) : Date.today if current_user
end
我得到 undefined method 'missed_dates'
。
这是因为:
[1] pry(main)> MissedDate.last
id: 3,
user_id: nil,
我不知道如何使 user_id 不是 nil
,或者是否有其他方法可以解决这个问题。
MissedDate belongs_to :level
和 Level belongs_to :habit
和 Habit belongs_to :user
确实有一个 user_id
与之相关。
作为新手,我在脑海中想象这样的事情会奏效:
@missed_dates_by_date = current_user.habits.levels.date_missed.group_by {|i| i.date_missed.to_date}
但这给了 undefined method 'levels'
_calendar.html.erb
<%= calendar @date do |date| %>
<%= date.day %>
<ul>
<% @missed_dates_by_date[date].each do |missed_dates| %> # This is what I'm trying to get it to work for so that I can show in a calendar the date_missed
<%= missed_dates.date_missed %>
<% end %>
</ul>
<% end %>
最佳答案
要通过另一个关联获得一个关联,我们必须在模型中声明它并指定 :through
选项,像这样:
class User < ActiveRecord::Base
has_many :habits
has_many :levels, through: :habits
has_many :missed_dates, through: :levels
end
这样,ActiveRecord 就知道如何将错过的日期与用户相关联并可以自动检索它们(无需 MissedDate
上的 user_id
字段):
current_user.missed_dates.where(attribute: value)
您可能应该从 MissedDate
中删除 user_id
以避免与这样的迁移混淆:
def up
remove_column :missed_dates, :user_id
end
def down
# insert the code to re-create the column
end
关于ruby-on-rails - 如何使用 ApplicationController 的嵌套属性方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637659/
我正在使用 Ember App Kit (EAK)。 当我加载我的索引页面时,Ember Inspector/Chrome Dev Tools 控制台显示这一行: *generated -> cont
在应用程序 Controller 中,我有几个方法可以处理请求的 Controller 和操作名称。 为了遵循 DRY 原则,我想用这些参数定义共享变量。 class ApplicationContr
每当两个并发的 HTTP 请求进入我的 Rails 应用时,第二个总是返回以下错误: A copy of ApplicationController has been removed from the
ApplicationController是否继承自DeviseController? 否则如何设计方法在 ApplicationController 中可用。 最佳答案 ApplicationCon
在我的 ApplicationController 中,我有一个方法定义为辅助方法: helper_method :some_method_here 我如何在 RSpec 中测试 Applicatio
如果我在 application_controller 中: def calendar_sidebar @missed_dates_by_date = current_user.misse
我需要对 Controller 中的回调顺序进行更精细的控制。目前 Rails 只允许您使用 append|prepend_before|after_action,但如果您想添加一个带有专用回调的模块
我在ApplicationController中定义了方法 class ApplicationController < ActionController::Base helper_method
我在 rackspace 云服务器上在线设置了一个简单的应用程序,但我从 phusion passenger 收到以下错误消息: uninitialized constant ApplicationC
我正在使用 Rails 5.2、Pundit 1.1 和 rails_admin 1.2 我的 application_controller.rb 中有以下内容: class ApplicationC
我正在尝试使用 rspec 来测试我的 ApplicationController 中的过滤器。 在 spec/controllers/application_controller_spec.rb我有
我是 Rails 的新手,我不明白为什么会出现此错误: undefined local variable or method `with' for ApplicationController:Clas
我的问题涉及以下开发堆栈: rails 3.2.1 德雷珀 0.14 祖先 1.2.5 我想要做的是,将导航传送到我的布局。所以我在 ApplicationController 中定义了一个 befo
我想我会想出一个巧妙的方法来在 Rails 3.x gem 中扩展 ApplicationController。 在我的 gem lib/my_namespace/my_controller.rb ,
我正在使用 Ember.js,并且在渲染的模板部分中从我的 ApplicationController 访问方法时遇到问题。 在我的布局中,我有以下内容 {{ render common/na
在Rails中,我在ApplicationController中添加了几个rescue_from处理程序。他们的工作正常,除了看起来像 session 丢失,因为下一个请求始终被重定向到登录页面。 A
假设我有两个模型:客户和产品 Client的“username”和“email”应该是“unique index”,作为Product的“serialnumber” 当用户在作为唯一索引的表单字段上键
当我从像 UsersController < ApplicationController 这样的继承 Controller 调用位于 ApplicationController 内部的方法时,该方法的
我正在尝试升级到 Rails 4 beta 1,但遇到了一些问题。 简而言之,这就是我的应用程序 Controller 的样子。 class ApplicationController ': unde
我需要在 Rspec/capybara 请求规范中 stub current_user 方法的响应。该方法在 ApplicationController 中定义并使用 helper_method。该方
我是一名优秀的程序员,十分优秀!