访问控制器数据以传递局部变量以在视图中呈现 haml 部分
Accessing controller data in order to pass local variables for rendering a haml partial in a view
我正在尝试在视图中渲染部分内容。在我看来,我有以下代码调用正在呈现的 haml 文档:
= render :partial => 'data_popups/events'
不过我需要传递局部变量所以'undefined local variable'就解决了。包含所有数据的控制器位于 dataPopupsController#events 下......无论如何都可以访问数据以便我可以将局部变量传递给局部变量吗?欢迎任何帮助。干杯~
只要数据在您的外部视图中可用,您就可以使用 locals
选项将其传递给局部视图。例如,如果这是在您的主页上,您可以像这样将数据传递给控制器...
# app/controllers/pages_controller.rb
class PagesController < ApplicationController
def home
@data = Model.get_data
end
end
然后,在您看来,使用 render
方法的 locals
选项将 @data
传递到您的部分:
# app/views/pages/home.html.erb
<%= render :partial => 'data_popups/events', :locals => { :data => @data } %>
在看不到您的控制器代码的情况下,这里是您可以执行的操作的基本示例:
class UsersController < ApplicationController
def index
@data = User.get_data
end
end
# views/users/index.html.erb
<%= @data.some_method %>
<%= render 'data_popups/events', :locals => { :data => @data } %>
# views/data_popups/_events.html.erb
<%= data.some_other_method %>
请注意,当您将 @data
作为局部变量传递给 'data_popups/events' 时,您现在将局部变量引用为 data
。
我正在尝试在视图中渲染部分内容。在我看来,我有以下代码调用正在呈现的 haml 文档:
= render :partial => 'data_popups/events'
不过我需要传递局部变量所以'undefined local variable'就解决了。包含所有数据的控制器位于 dataPopupsController#events 下......无论如何都可以访问数据以便我可以将局部变量传递给局部变量吗?欢迎任何帮助。干杯~
只要数据在您的外部视图中可用,您就可以使用 locals
选项将其传递给局部视图。例如,如果这是在您的主页上,您可以像这样将数据传递给控制器...
# app/controllers/pages_controller.rb
class PagesController < ApplicationController
def home
@data = Model.get_data
end
end
然后,在您看来,使用 render
方法的 locals
选项将 @data
传递到您的部分:
# app/views/pages/home.html.erb
<%= render :partial => 'data_popups/events', :locals => { :data => @data } %>
在看不到您的控制器代码的情况下,这里是您可以执行的操作的基本示例:
class UsersController < ApplicationController
def index
@data = User.get_data
end
end
# views/users/index.html.erb
<%= @data.some_method %>
<%= render 'data_popups/events', :locals => { :data => @data } %>
# views/data_popups/_events.html.erb
<%= data.some_other_method %>
请注意,当您将 @data
作为局部变量传递给 'data_popups/events' 时,您现在将局部变量引用为 data
。