Tag: 部分视图

在Locails中将Locale变量推送到Partial 4.2

我有一部分可以将他们在Steam库中的游戏列表拉出来 它的基本视图源自current_user.player_steam_id – SQL中的一个字段。 最初这只是展示你现在的游戏很好,但我想用它做一些事情。 A)当您检查某人的个人资料时,您会看到他们的列表。 B)您可以使用用户ID进行搜索,以提取查询结果。 我最初的问题是使用(XXXXXX实际上是一个数字,所以我不对其进行字符串化(是吗?) ‘game_list’, :locals => {:header => “Welcome to His Page!”, :steamId => XXXXXXXXXX } %> 而且“欢迎来到他的页面!” 正在通过,但我遇到了很多问题:steamId渲染。 在局部视图中,我尝试使用 和:steamId current和:steamId是唯一不会破坏页面的两个,但它不会呈现任何内容。 我对此很陌生,所以试图解决这个问题,但我发现很多post都说我做得对。 我欢迎任何意见。 另外 – 由于我打算广泛使用它,我应该考虑将它变成控制器吗? 或者部分就足够了? (PS我通常是一个Node人,所以我试了很多调试+ console.log(steamId)来看看它是如何渲染的,但我没有在console.log中得到结果,而且调试没有做任何事情。你通常在RoR中调试这样的东西吗? 谢谢你的任何输入! 编辑: 附加信息: 这个问题部分是在局部。 通过将其修改为owned_games定义,并且播放器定义位于不同的行上,它已成功解析。 这只是一个不审查 – 我复制/粘贴的失败对我而言。 已解决的代码: This is my steam ID 但是,如果它从数据库中提取player_steam_id,我只能进行渲染。 例如,如果我有:steamId => 76561198017108025 它不起作用,但如果我有 :steamId […]

Rails引擎呈现视图

我有一个我正在开发的导轨引擎。 这是我的第一个,除了rails文档中的示例,所以我没有很好的参考什么有效。 它有一部分我要求应用程序渲染。 这很好。 我理解为什么我需要通过引擎名称空间引用partial。 但在局部内,我显然也必须使用名称空间。 所以当我渲染一张照片时 这是基于文档的反直觉。 我做错了什么,或者只是它的方式? 好的,谢谢Rich Peck,我想我明白了。 让我列举一下,如果我仍然感到困惑,你可以纠正我。 我对如何为引擎生成命名空间感到困惑。 我假设结构生成了名称空间,当你进入引擎时,你就像在普通应用程序中一样操作。 命名空间是自动的:)。 但是如果我理解正确的话,rails组件的名称空间是通过将它们封装在由生成器处理的::::模块EngineName中生成的,但是如果你手动创建文件,那么你需要添加封装在文件中。 由于这是我的第一台发动机,我不知道他们失踪了。 对于Asset管道,命名空间由结构image / enginename / ….生成。 因此,即使在引擎内部,除非您在模块内部,否则您必须遵守命名空间EngineName :: ModelName :: Method。 命名空间不应用于任务文件,似乎不喜欢在模块中封装。 但这仍然是多余的,因为rake任务已经提供了命名空间方法。 Ala namespace :db do 我还惊讶地发现你需要在命名空间控制器ala中手动包含命名空间的应用程序控制器 require_dependency “enginename/application_controller” 但正如里奇所说,引擎只是一个美化的模块,所以我想它偶尔需要一些帮助。 当然,Javascript文件是隔离的,因为它们仅在加载引擎中的一个页面时加载,而不是在引擎的部分内容被渲染时加载。 你可以让引擎的用户在他们的application.js中包含javascript文件,但是然后他们需要手动命名,以避免将它们与其他来源的类似JS混淆。 肯尼斯·特鲁尔斯(Kenneth Truyers)有一个很好的博客,我已经为未来的练习添加了书签 ,也许我现在需要了解它。 所以语言环境不是名称间隔,所以你需要自己做。 很容易添加:engine_name到语言环境文件层次结构ala de :: engine_name:variables我建议为引擎名称添加前缀,例如x,这样就可以避免让用户使用与变量相同的名称来破坏引擎语言环境。 所以xAdmin:会比Admin更好:因为像我这样的人可能会使用Admin:作为管理function的变量:)并发现引擎中的所有本地化突然消失了。 富有,我更接近 现在来扩展我的问题, 我不确定初始化文件是否是命名空间。 apps initializers目录中的enginename.rb文件是否会覆盖引擎初始化目录中具有相同名称的文件? 我假设如果确实如此,我们可以在引擎初始化程序中使用不同的名称,因为我认为它与文件名没有真正的关联,只是簿记。 现在如何在应用程序中扩展模型。 […]

“渲染@collection”有什么作用?

我试着通过查看示例应用程序来更好地学习Rails,并且在查看railscasts.com源代码的这一行时 ,我注意到它是这样做的: 到底发生了什么? 为什么渲染函数没有记录? 或者是吗?

无法将本地对象传递给Rails 3中的嵌套部分

我希望有人可以阐明可能是一个简单的错误。 我试图将局部变量文章(在部分_article.html.erb中)传递给_article.html.erb中的另一个部分嵌套。 当部分代码在_article.html.erb中时,它工作正常。我尝试了很多变种(包括:本地人),但似乎无法传递局部变量。 _article.html.erb ‘unfavorite’, :object => article %> ‘favorite’, :object => article %> _favorite.html.erb(最喜欢的和不喜欢的都或多或少相同,所以我只发了一个) { :method => :delete, :class => ‘unfavorite_form’, }, :remote => true do |f| %> “Favorite”, :id => “favorites_button”, :title => “Remove from favorites”) %> 错误消息是: undefined local variable or method `article’ for #<#:0x6727a58>

如何将字符串传递给Rails部分?

我的观点是这样的: render :partial => ‘shared/_address’, :locals => {:address => order.bill_address} 部分看起来像这样: <%= raw address.address_lines('’) %> 在页面上呈现部分的多个实例。 而不是让它显示address.name,我如何修改我的渲染:部分行,以便我传递一个自定义字符串,例如“未来发货地址”,而不是必须使用address.name? 所以代码如下所示: STRING GOES HERE <%= raw address.address_lines('’) %>

rails prepend_view_path可安装引擎

一方面,我有一个可安装的引擎让我们说Front Front包含我的资产和几页它与MainApp隔离。 我不希望它触及主应用程序。 另一方面,我希望我的MainApp使用布局和Front的部分。 所以我这样设置布局: class ApplicationController < ActionController::Base layout 'front/application' end 但是前端/应用程序直接引用引擎部分,因为隔离,就像这样 render ‘header’ # front/ prefix is not required 因此,MainApp视图尝试加载app / views / application / header而不是app / views / front / application / header 为了解决这个问题,我把prepend_view_path放到这样: class ApplicationController < ActionController::Base layout 'front/application' before_filter :prepend_front protected def prepend_front prepend_view_path "app/views/front" end end 但这不起作用,因为引擎路径指向供应商。 引擎将它自己添加到前置路径列表:〜/ main_app […]

rails访问部分内部的视图名称

我有一个部分,我在不同的页面使用。 我想根据呈现它的视图有条件地隐藏部分内部的某个div。 我正在考虑创建一个页面特定的javascript文件,它将查找div并隐藏它。 但是,如果有一种方法来检索部分内部的视图名称/页面名称,它将是部分的中心,并且不需要在多个页面中加载相同的javascript文件。 是否有人知道如何在局部内做到这一点

Rails 3 + Ajax:如何访问我的本地表单构建器实例

我有一个显示一组输入的表单。 我也有一个按钮,当点击时,我发出一个ajax请求,它应该用一组不同的输入替换现有的输入。 我所有的ajaxy链接东西都很好。 问题是我使用的是form_for ,所以为了显示新的表单输入,我需要表单构建器实例。 查看文件 我希望我的js.erb看起来像这样,但f只在视图中的窗体范围内定义。 $(‘#info’).html(“”); 我该如何工作以便能够以某种方式进入该部分?

将部分从一个控制器的视图渲染到另一个控制器的Rails视图

我有一个名为“show”的控制器的视图。 在该视图中,我想渲染另一个控制器视图的内容 – 显然,该视图上的表单逻辑与它所属的控制器进行通信。 我该怎么做呢? 我对rails非常陌生,我对框架没有100%的信心。 您几乎可以在视图中将它们视为“小部件”。 我知道您可以使用以下方法在视图上从同一个控制器渲染操作: render :action => “show_home_page”, :layout=> false 但是我需要它来从另一个控制器渲染动作(视图)。 即。 我有一个视图,它被渲染到一个布局上。 该视图属于控制器A.我需要在原始视图中从控制器B渲染“索引”和“新”视图(上图) 。

rails render_to_string给出部分视图错误

在代码下方使用部分视图的render_to_string方法时,我收到ActionView::MissingTemplate错误 bizz = render_to_string(:partial => “biz_new”,:layout => false) 即使我已经明确指定:layout => false ,我总是得到MissingTemplate错误。 但是普通视图的render_to_string在同一个项目中工作正常。 可能是什么原因? 堆栈跟踪下方 ActionView :: MissingTemplate(缺少部分业务/ biz_new与{:handlers => [:erb,:rjs,:builder,:rhtml,:rxml],:formats => [:text,“ / ”],:locale => [:en,:en]}在视图路径“/ home / ramesh / works / xxx / app / views”,“/ home / ramesh / works / xxx / vendor / plugins / asset_packager / app / views”):