Ruby on rails Rails:将数据从一个控制器中的实例变量传递到另一个控制器中的实例变量
我有一个Rails应用程序,它有两个数据库Ruby on rails Rails:将数据从一个控制器中的实例变量传递到另一个控制器中的实例变量,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个Rails应用程序,它有两个数据库 遗留数据库,表名为:businesss rails应用程序附带的常规开发数据库 我想将业务表中的数据放入开发数据库。为此,我采取了以下步骤: 设置应用程序,以便我可以从业务数据库中读取数据并在浏览器中查看输出。 我通过创建一个模型Business和一个BusinessesController类来实现这一点,该类读取businesss表中的所有数据,并将条目存储在一个实例变量@businesss 然后我创建了一个名为Listing的模型和一个Listin
Business
和一个BusinessesController
类来实现这一点,该类读取businesss
表中的所有数据,并将条目存储在一个实例变量@businesss
Listing
的模型和一个ListingsController
。我想读取业务控制器
中@业务
中的所有条目,并将它们存储在列表控制器
中的@列表
中http://localhost:3000/listings
我只看到占位符文本,对于@business
&@listings
的值,我看到nil
因此很明显,
@businesss
变量在ListingsController
类中是不可访问的。我想知道如何最好地在这两个控制器之间传递数据。你做错了!在MVC模式中,您永远不应该需要一个控制器来与另一个控制器通信。您的模型应该是唯一负责知道如何获取数据的人,因此您将在两个控制器中使用该模型。业务逻辑依赖于模型
您应该在Listings controller中使用业务模型
@listings = Business.all
请阅读如何正确使用。另外,我认为如果你告诉我们你真正想要完成的事情会更好,因为不管是什么,你都没有正确的方法。抱歉!我同意安德鲁的观点,例如,你现在只是想传输数据吗?Rails可能是一个错误的选择。哇!你很棒。这就解决了问题。我一整天都在为这个问题苦苦挣扎,试图自己解决它。非常感谢!这只是Rails的一个基本概念。事实上,我对这门课也不熟悉:)但我没有错过那门课
class Listing < ActiveRecord::Base
attr_accessor :name, :telephone
def initialize(attributes = {})
@name = attributes[:name]
@telephone = attributes[:telephone]
@latitude = attributes[:latitude]
@longitude = attributes[:longitude]
puts 'Created a new Listing'
end
end
class ListingsController < ApplicationController
def get_all
@listings = @businesses
# @listings = businesses_controller.get_all
end
def index
self.get_all
respond_to do |format|
format.html #index.html.erb
end
end
end
<h1>Listings</h1>
<p>This is where all Listings will show up</p>
<%= @listings.inspect %> <br/>
<%= @businesses.inspect %>
http://localhost:3000/businesses
http://localhost:3000/listings
@listings = Business.all