我有一个has_many关系中的两个模型:
(has_many :vacations)
(belongs_to: user)
我正在尝试在假期索引视图中显示用户的信用属性。我该怎么办呢?
我试过了:
<%= vacation.user.credits %>
但是,我收到了错误。
这样做的正确步骤是什么?它与动作控制器参数有什么关系吗?
用户模型
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :vacations
end
假期模式
class Vacation < ActiveRecord::Base
belongs_to :user
before_validation :calculate_days
def calculate_days
if from_date && to_date
self.leave_credit = from_date.business_days_until(to_date) + 1
end
end
end
答案 0 :(得分:1)
一种方法可能是使用current_user
方法,因为您已经在使用设计。仅当信用证必须仅显示给当前登录的用户时(例如在仪表板中),这才有效。尝试使用<%= current_user.credits %>
您也可以尝试
class VacationsController < ApplicationController
def index
@user = User.find(params[:user_id])
@credits = @user.credits
end
end
另一种方法可能是
@credits = User.find(params[:user_id]).credits