Tag: actionview

Rails 3中的dynamic错误页面

在Rails 2.3.x中,你可以像这样覆盖render_optional_error_file : # ApplicationController.rb protected def render_optional_error_file(status_code) render :template => "errors/500", :status => 500, :layout => 'application' end 但是,Rails 3不再拥有render_optional_error_file 。 相反,您需要覆盖rescue_action_in_public ,您可以这样做: # config/initializers/error_page.rb module ActionDispatch class ShowExceptions protected def rescue_action_in_public(exception) status = status_code(exception).to_s template = ActionView::Base.new(["#{Rails.root}/app/views"]) if ["404"].include?(status) file = "/errors/404.html.erb" else file = "/errors/500.html.erb" end body = template.render(:file => file) render(status, […]

如何在Rails中混入并从controller中调用link_to?

这似乎是一个noob问题,但简单的答案是逃避我。 我需要在ActionController方法中调用link_to来吐出一个HTML链接。 ActionView::Helpers::UrlHelper.link_to调用url_for ,但这调用AV模块的版本,而不是控制器的。 我设法强迫这做我想要的做 #FIXME there must be a better way to mixin link_to alias_method :self_url_for, :url_for include ActionView::Helpers::UrlHelper alias_method :url_for, :self_url_for 在控制器中。 但是,我还不确定它为什么可以正常工作。 有人可以解释方法的范围和隐藏在这里发生的? 什么是更好的方式混合link_to (或通常,只包括一些模块的方法),所以我可以在控制器中调用它(生成闪存string与链接是用例。) 请不要关于MVC的讲座 – 如果有的话, link_to应该在与url_for分开的模块中。 从这个噪音的数量来看,很多人遇到了这个看似微不足道的麻烦,最终浪费了一个小时做“Rails的方式”,真正需要的只是一分钟的破解,使我的应用程序现在工作。 有没有一个“Rails的方式”与帮手或许做到这一点? 或者更好的ruby方式?

如何将Rails视图助手提取到gem中?

我有一套经常使用的rails视图助手,想将它们打包成一个gem,这样我就可以把一行放入我的Gemfile中,并且可以从我的视图中访问helpers。 在使用Bundler和Jeweler之前,我已经创build了gem,然而,我并不清楚如何在gem中组织Rails视图助手,并将它们包含在rails中。 我将不胜感激任何指针,或链接到最新的教程如何做到这一点的Rails 3 谢谢 只是为了澄清:问题不在于“如何创造gem”。 它的“如何在一个gem中包装视图助手,所以我可以在Rails中使用它们” 编辑2:我也同意下面的海报..一个铁轨引擎是太多矫枉过正这种(希望简单)要求

Rails:部分应该知道实例variables吗?

例如,瑞安·贝茨的nifty_scaffolding这样做 edit.html.erb <%= render :partial => 'form' %> new.html.erb <%= render :partial => 'form' %> _form.html.erb <%= form_for @some_object_defined_in_action %> 那个隐藏的状态让我感到不舒服,所以我通常喜欢这样做 edit.html.erb <%= render :partial => 'form', :locals => { :object => @my_object } %> _form.html.erb <%= form_for object %> 那么哪个更好一些: a)有部分访问实例variables或者b)传递它所需要的所有variables的一部分? 我一直在selectb),但是我碰到了一个小菜。 some_action.html.erb <% @dad.sons.each do |a_son| %> <%= render :partial => 'partial', :locals […]

如何在Rails中呈现不同格式的部分内容?

我试图生成一个包含一些HTML的JSON响应。 因此,我有/app/views/foo/bar.json.erb : { someKey: 'some value', someHTML: "<%= h render(:partial => '/foo/baz') -%>" } 我想要它呈现/app/views/foo/_baz.html.erb ,但它只会渲染/app/views/foo/_baz.json.erb 。 传递:format => 'html'没有帮助。