我有两个控制器coordinates
和photoexifdatas
,我想访问photoexifdatas
内的coordinates
中的一个实例变量。这是我的代码:
photoexifdatas_controller.rb
class PhotoexifdatasController < ApplicationController
skip_before_filter :verify_authenticity_token
attr_accessor :photoexifdatas
attr_accessor :pc
def index
@pc = Photoexifdata.find(1);
$pcd = Photoexifdata.find(1).lattitude;
@photoexifdatas = Photoexifdata.all
respond_to do |format|
format.html
format.json {render json: @photoexifdatas }
end
end
def create
@lattitude = params[:lattitude]
@longitude = params[:longitude]
p = Photoexifdata.new
p.lattitude = @lattitude
p.longitude = @longitude
p.save
redirect_to '/photoexifdatas'
end
end
当我在 views / coordinates / index.html.erb 中执行<%= puts PhotoexifdatasController.pc %>
时
它没有打印出来。这样做的正确方法是什么?
答案 0 :(得分:0)
当您在 views / coordinates / index.html.erb 中执行<%= puts PhotoexifdatasController.pc %>
时,会发生什么情况是您尝试访问PhotoexifdatasController
类的pc方法(你实际上并没有在PhotoexifdatasController
类的实例上调用它。)
当您想要从另一个控制器访问一个控制器的实例变量时,这不是一个好主意。我建议如果您想要访问Photoexifdata
中的CoordinatesController
模型,只需执行Photoexifdata.find(1)
之类的常规查询,并将其分配到CoordinatesController
中的实例变量中。您始终可以访问CoordinatesController
中的任何模型实例。