Tag: 动态

属性一行,嵌套在下面(如何在表中显示正确的关系?)

这是我在开始Ruby on Rails旅程的过去几个月中遇到的最困难的问题。 似乎很多人都会面对它,但我在网上找不到解决这个问题的任何东西,这意味着我的问题要么是非常容易让我思考得太厉害,要么我提出错误的问题。 请帮助我找到正确的答案和/或正确的问题! 当用户提交表单时,它包含属性(已量化)和嵌套属性(结果)。 当用户点击索引时,我希望他看到量化在标题行中创建了一个新列(对于每个新的量化实例,它在页面上水平向右)。 然后,对于他提交或稍后添加的每个结果,我希望他看到结果在该列中创建一个新行(沿着页面垂直向下)。 我希望我解释得那么好,并没有让它听起来比它更令人困惑。 这是我可以使用html标签看起来像表格的一种变体: 这是另一种变化: 但无论出于何种原因,我无法得到这个,这就是我想要的: 我真的不知道在这一点上,因为我已经尝试了所有的东西,你需要什么代码来帮助我,所以不要把它全部放在这里我会通过github给你这里: https : //github.com/RallyWithGalli/ ruletoday UPDATE 使用下面的Patrick的答案,我能够让表格看起来像这样: 但它的问题是,如果用户添加另一个量化,例如meditate(min)并包含更多结果行然后在它之前的行,那么结果将向左移动,直到它到达具有那么多行或更多行的另一列。 在上面的例子中,“2.1”应该在冥想列中,而是落入重量列。 更新2.0 随着Patrick的更新,这就是现在的样子: 再次感谢Patrick尝试。 到目前为止,你是那个坚持我的男人。 你提到了bootstrap。 我再说一遍。 在此先感谢您的帮助! 我会永远欠你的债。

Rails – 基于主机和ID的动态路由

我有一个包含许多用户页面的rails应用程序。 当用户想要在此页面指向域名时,我该怎么做? 现在我已经测试了这个,它的工作原理 – root :to => “controller#show”, :id => 4, :constraints => {:host => “www.exampleurl.com”} 但需要将其转换为动态,以便在将列迁移到名为domain的模型后,它会检查domain并为其提供正确的ID。 就像是 – root :to => ‘controller#show’, :id => ‘:id’, :constraints => {:host => ‘:domain’} 这会是什么样的?

动态rails助手(例如link_to方法,方法)

我想知道如何为我的rails助手获得一些动态能力: 在这种情况下,将对象的类扔到链接中。 我对如何在辅助方法中抛出方法感到困惑。 任何建议将不胜感激!

如何在Rails 3.1资产管道中动态需要资产?

我有一个基于插件的系统,我用它在Rails中进行应用程序开发。 每个插件都实现了一个带有MVC组件等的引擎。主应用程序只是一个空的线束,它将所​​有工作委托给安装的插件。 我目前正在从Rails 2.3.5升级到Rails 3.1,并试图让资产管道与我的框架一起工作。 我遇到的问题是尝试以编程方式将我的插件资源放入例如application.js清单中。 我可以像这样手动添加它们: //= require 一切都按预期工作。 但是,由于我的框架中有许多插件,并且每个安装都有不同的组合,我希望根据安装的插件进行此清单更改。 我试过这个解决方案: 但我发现资产管道编译的require / directive阶段发生在ERB扩展之前,因此生成的注释最终只是注释。 是否有另一种机制可以包含可能有效的编译路径? 在指令处理开始之前预先处理清单文件的任何方法? 如果我想不出更好的东西,我可能必须编写一个rake / deployment任务,在部署时生成一个plugin.js清单文件,但如果可能的话,我会喜欢更清晰和优雅的东西。 谢谢! 编辑 :发现解决方案,一旦stackoverflow让我发布完整的解决方案。 同时查看以下评论​​……

如何在网页中动态显示ping输出?

作为诊断页面的一部分,我希望用户能够运行“ping”,即普通的shell命令将ICMP_ECHO_REQUST发送到某个IP,并在浏览器的div中动态显示结果。 后端是Ruby / Rails。 我过去在服务器端运行命令并从ping命令读取输出。 我一直在构建网页,定期回调服务器动态更新页面的部分内容。 但在这种情况下,有三个挑战: 能够将ajax调用回uri / url以查找运行ping命令的进程 理想情况下,当ping命令返回新的数据行时,能够更新页面 可选择能够“打破”ping。 使用ping我当然可以设置选项只发送x ping然后退出,从而消除了停止进程的需要。 但是我还有另一个工具,它将是下一个日志查看器,并且该工具在一定数量的行之后不会自行停止,但如果没有中断则继续,即使用Control-C。 我是否使用运行ping的进程设置了一个memcache来进行渲染,或者是否有更简单的方法? 我搜索了很多想,这应该是一个常见的问题,有一个rails插件只是神奇地实现了所需的,但我没有找到太多。 有什么建议或指示?

Helper中的动态路径

我正在尝试为我的管理链接创建一个帮助方法。 在很多视图中我都有代码 “You’re a Noob”, :method => :delete %> 仅在登录时显示这些内容。 我想在他们的位置做这样的事情 并将当前项传递给应用程序帮助程序方法 def admin_links(m) if current_user a = “#{link_to “edit” edit_m_path(m)}” a << "#{link_to "new" new_m_path}" a < “Your a Noob”, :method => :delete}” end end 或类似的东西。

在单表inheritance机制中使用动态创建的类

我有一个名为’DynObject’的ActiveRecord类,可用于inheritance。 在初始化时,我动态创建一些从它inheritance的类: classes_config = { foo: ‘foo’, bar: ‘bar’ } classes_config.each do |name,options| klass = Class.new( DynObject ) do end self.klasses[name] = const_set( “#{name.camelize}DynObject”, klass ) end 这一切都很好,这些类创建得很好..但是当ActiveRecord尝试加载创建的记录时,STI机制失效.. (ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: ‘FooObject’….)) 我认为这很奇怪,因为当我检查类在type列中它们的命名方式时,它们存在… 当我检查这些类的ancestors ,他们也inheritance了… 有可能我想要完成的事情吗? 还有什么需要做的吗?

相当于Ruby在Ruby中的动态导入语句?

在python中,要动态加载模块,您可以简单地使用_____import_____语句并将模块分配给变量,即(来自文档): spam = __import__(‘spam’, globals(), locals(), [], -1) 我在python中多次使用它来模拟动态模块加载/卸载,因为要“卸载”模块,你可以简单地删除对它的所有引用,即: spam = None 在Ruby中有相同的东西吗? 我查看了其他一些问题( 这个 , 这个和这个 ),但我想知道一种方法将加载的模块约束到变量,如果可能的话。

在Ruby中动态创建局部变量

我有一个CSV文件,我正在解析并在数据库中插入它的位。 我想写一个解析器,它考虑到列顺序将来可能会改变的事实。 我认为我可以通过将标题行作为数组抓取来实现此目的,并且对于每一行,将值放在动态创建的局部变量中(使用eval)。 然而,这似乎不起作用,因为局部变量似乎不能在eval之外访问。 我在其他地方读过,这可能在ruby 1.9中是正确的,但我使用的是1.8.7 代码如: headers = [“a”, “b”] headers.each do |h| p e_str = h+”=1″ eval(e_str) end puts a 根本不起作用,给予 test.rb:6:未定义的局部变量或方法`a’用于main:Object(NameError) 尽管第3行按预期打印“a = 1”和“b = 1” 有谁知道我怎么能这样做?

Ruby中的动态validation和元编程

我正在尝试开发一个应用程序,该应用程序可以向不同的用户提供相同的资源,并且资源可能具有基于用户的不同validation行为。 我曾尝试使用Ruby元编程以简单的方式解决这个问题,但看起来我缺少一些关于此事的关键知识。 我可以通过诸如此类的模型来举例说明 class Profile < ActiveRecord::Base # validates_presence_of :string1 end 该模型有一个属性’string1’,有时是必需的,有时不是。 我想为每个用户创建子类(由于此简化中不明显的原因)并创建了一个我想要包含的模块: module ExtendProfile def self.included(base) base.extend(ClassMethods) end module ClassMethods def configure_validation(required) if required class_eval(“ActiveRecord::Base.validates_presence_of :string1”) end end end end 它的唯一目的是添加一个方法,根据给定的参数添加条件validation。 当使用一个为true的参数调用时,它会添加validation,但它不会干净地执行。 看起来它并没有像我想象的那样分离子类。 它可以通过以下测试来说明: profile = Profile.new profile.save; profile.errors => [] 默认情况下,配置文件可以保存而不会出错。 Object::const_set(‘FirstExtendedProfile’.intern, Class::new(Profile) { include ExtendProfile }) FirstExtendedProfile.configure_validation(true) fep = FirstExtendedProfile.new; fep.save; fep.errors […]