草庐IT

ruby-on-rails - 为什么在 html.erb 中未声明的@variables nil 而不是 NameError

如果html.erb文件呈现时没有Controller中分配的变量(例如@user=params["user_name"])那么为什么它将@user视为nil而不是抛出NameError:undefinedlocalvariable。例如:如果Controller将@user传递给它,这将呈现问候语,但如果页面是第一次呈现并且用户尚未输入他们的用户名,那么问候语将不会在那里,而不是导致错误。在我看来,@user永远不会在html.erb正在执行的本地范围内声明,因此它应该会导致错误。这里发生了什么?也许@以某种方式进行了预处理,意味着将变量视为符号并将其用作params哈希中的键并返回

ruby - 在 template.erb 中设置 chef vault 变量

我的Recipe中有一个保险库项目定义如下item=ChefVault::Item.load("user","password")如何在我的template.erb中调用它?我尝试了以下不起作用ROOTPASSWORD=我的保险库项目如下所示:$knifevaultshowuserpasswordid:passwordpass:xxxxxxxxxxusername:chefuser我通常在Recipe中做这样的事情ROOTPASSWORD#{item['pass']}但是我认为这不适用于模板。 最佳答案 有两种方法可以解决该问题,但

javascript - 使用 Ajax 真实性 token 在 Rails 中从 Index.js.erb 渲染到 Index.html.erb 时出现问题

基本上,我有一个TODOAPP页面显示在Rails中的Index.html.erb上,我试图通过index.js.erb呈现实例化的TODO对象,因为它们每个都有一个附加的表单需要来自Rails助手的真实性token。通过/在Javascript中呈现TODO是必要的。我的解决方案是通过在索引中设置渲染“index.js.erb”并调用将在ruby​​中渲染然后运行的部分来尝试将待办事项附加到Index.html.erbView(')。但是,这需要一个_index部分,并且只是尝试直接在index.js.erb中附加甚至运行任何内容实际上会导致该页面本身被呈现。当然,我知道这是一个路由

ruby - 如何在erb模板中使用utf-8编码的数据

我有一个使用utf-8编码存储的数据文件,我想将数据嵌入到erb模板中。数据文件在顶部使用utf-8显式编码。但是在运行erb引擎时,我遇到了Encoding::CompatibilityError错误。我认为Ruby中的默认编码是ASCII,erb模板也必须在ascii下编码。我已明确将其更改为utf-8,但没有任何好处。这是数据文件:#coding:utf-8samples:[{name:'北京',city:'北京'}]这是Erb模板:#... 最佳答案 (我决定写不同的答案)我认为有两个问题。输入数据文件编码你是如何输出的er

ruby-on-rails - 在 ruby​​ on rails 中使用 slim 而不是 erb 动态传递 id

您好,我在rails中使用slim而不是erb。我需要根据传递给查看页面的记录的ID生成动态ID。这是我的代码的一部分:#clear_class_"#{activity.id}"-user=activity.user.row.col-xs-3.col-md-2.person_img=link_to(image_taguser.avatar.url:normal,alt:user.full_name,class:'imgimg-responsive'),user_path(user)...当我尝试使用#clear_class_"#{activity.id}"时,View变得扭曲。我怎样才

ruby-on-rails - Rails - 在没有 layouts/application.html.erb 内容的情况下显示链接 View

如果这令人困惑,我很抱歉,但在我的layouts/application.html.erb中,我有几个链接,例如注销(logout_path)。我的application.html.erb的所有内容都在一个名为“容器”的div中,当我链接到另一个页面时,例如登录,该View的内容显示在“容器”div中。当我链接到另一个页面时,该页面包含多个本应填充浏览器的div,该页面被压缩到容器div中,同时显示布局页面中的其他元素,例如页脚。我怎样才能让我的登录内容和我其他一些链接页面的内容不显示在application.html.erb的div中?抱歉,这太困惑了。

ruby - Erb View 中不需要的空格

这是我的sinatra代码:get'/'dofoo='notbar'erb:indexend我的布局.erb我的索引.erb现在的问题是多余的文字(用黄色突出显示)扰乱了我的设计知道为什么会这样吗?如果我不使用布局并且仅将index.erb与所有html代码一起使用,则不会发生这种情况[编辑:]使用在....layout.rb中抛出错误(意外的tUMINUS,期待kEND;@_out_buf.concat"";-yield-;@_out_buf.concat"\n") 最佳答案 我最好的猜测是4个空格来自layout.erb中的软标

ruby - Puppet:嵌套哈希/字典,数组:如何在 erb 中访问?

玩puppet,我最终进入了一个嵌套的字典/哈希-看起来或多或少像$settings={"var1"=>{"ip"=>"0.0.0.0","port"=>"1234","option"=>["foo","bar"],"machines"=>{"maschine-1"=>{"ip"=>"1.2.3.4","port"=>"1234"},"maschine-2"=>{"ip"=>"1.2.3.5","port"=>"1235"},}}}但是,我还没有设法在相应的erb模板中正确解析它。:optionserver:因此,我可以毫无问题地获取顶级字典中的值,即“ip”和“port”,但是,当我

ruby-on-rails - 如何在 erb 模板中呈现数组的最佳方式?

我有一个数组[["CompanyName","Field6"],["Email","Field5"]]然后我从该数组创建具有值的字段数组:[[{:label=>"CompanyName",:value=>"gfdgfd"}],[{:label=>"Email",:value=>"gfdgfd@gfd.pl"}]]使用fields=[["CompanyName","Field6"],["Email","Field5"]]#firstelementinarrayisLabelandsecondisparamidfields_with_values=fields.collectdo|fiel

ruby-on-rails - 如何在 Rails 3.2 erb 中使用 eval 在运行时执行存储在字符串中的 View 代码?

我们正在尝试做的是存储一大块erbstring中的代码然后在运行时执行代码。这是我们所做的测试:从工作erb文件中取出一大块代码,用eval重写erb文件。这是取出来的erb代码块:#t()是国际化的翻译方法。重写后的erb文件如下:在重写之前,代码块在之间。.现在变量code返回string代码块和eval执行代码块。但这是错误:(eval):1:syntaxerror,unexpected'^Extractedsource(aroundline#6):4:5:6:7:8:9:上面的代码有什么问题? 最佳答案 eval通过评估ru