Mse*_*enb 8 ruby-on-rails partial-views helpermethods ruby-on-rails-3.1
好的,我在应用程序控制器中有一个辅助方法:
def run_test(test_name)
#computation stuff
render :partial => test_name
end
Run Code Online (Sandbox Code Playgroud)
我在观点中称之为:
<%= run_test("testpartial") %>
Run Code Online (Sandbox Code Playgroud)
并且它只用1渲染(虽然......渲染部分似乎返回一个数组而不仅仅是部分内容?),但是如果我在视图中放入run_test辅助调用两次,我会得到一个双渲染错误,不应该发生偏袒.
有任何想法吗?
render在控制器与render视图中是不同的方法.控制器最终调用render一个视图,但控制器的render方法本身只能调用一次.它看起来像这样:
# Check for double render errors and set the content_type after rendering.
def render(*args) #:nodoc:
raise ::AbstractController::DoubleRenderError if response_body
super
self.content_type ||= Mime[formats.first].to_s
response_body
end
Run Code Online (Sandbox Code Playgroud)
注意如果不止一次调用它会如何引发?
当你打电话helper_method,你给视图的代理到控制器的版本render,这是不打算以同样的方式来使用ActionView的,这是不同于控制器的,预计要反复调用,以呈现谐音和诸如此类的东西.
看起来在Rails 3.2中这只是起作用:
# application_helper.rb
def render_my_partial
render "my_partial"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7211 次 |
| 最近记录: |