由于某些原因,我在帐户显示页面上显示相关记录时出现问题。
我有以下型号:
account.rb
具有以下关联:belongs_to :plan
plan.rb
具有以下关联:has_many :accounts
# accounts_controller.rb
def show
@account = Account.find(params[:id])
@account.plan = Plan.find_by(params[:plan_id])
end
当我尝试在帐户页面上显示计划名称时,它只显示第一个计划名称(即使我有多个计划,并且该帐户已正确设置plan_id。
即帐户1的plan_id为2但显示计划1的信息,其中帐户2的plan_id为1且显示正确的计划......
不知道我在哪里偏离航线,我们将不胜感激。
答案 0 :(得分:1)
ActiveRecord/FinderMethods#find_by
找到并返回与条件匹配的第一条记录,但为此您需要传递您要查找的属性和分配的值,在您的情况下,您只需要通过价值。
如果您计划获得该特定帐户的计划,那么Plan.find(id)
就足够了。