Tag: ruby on rails 3.2

在html文本中validationurl的存在

我想检测并过滤从表单发送的html文本,包含url或url。 例如,我从表格发送此html: RESOURCEShttp://stackoverflow.com/users/778094/hyperrjas https://github.com/hyperrjas http://www.linkedin.com/pub/juan-ardila-serrano/11/2a7/62  我不希望在html文本中允许或使用各种url / url 。 它可能是这样的: validate :no_urls def no_urls if text_contains_url errors.add(:url, “#{I18n.t(“mongoid.errors.models.profile.attributes.url.urls_are_not_allowed_in_this_text”, url: url)}”) end end 我想知道,如果html文本包含一个或多个url,我该怎么过滤?

使用布局响应所有HTML请求

我正在开发一个Rails应用程序,该应用程序将使用具有自己的路由function的客户端框架。 我想使用pushState路由,因此需要配置Rails路由器来响应这些请求(很简单)。 是否有一种简单的方法来设置具有有效路径的所有HTML请求,仅使用布局来响应,而不必使用一堆空白的action.html.erb文件来混淆我的视图文件夹?

手动定义getter / setter时如何使用read_attribute(attr_accessor或attr_writers)

我设置了一个search模型,并且要求至少填写一个字段。 我发现了一个有助于validation的问题, Rails:如何要求至少一个字段不为空 。 (我尝试了所有答案,但Voyta似乎是最好的。) validation工作正常,除非我想通过attr_accessor或attr_writer重新定义getter / setter。 (我在表单上有虚拟属性,需要分开validation。)为了弄清问题是什么,我测试了一个常规属性item_length属性。 如果我添加attr_accessor :item_length ,validation将停止工作。 所以,我想问题是如何在不使用点表示法的情况下读取属性的值。 由于validation使用字符串,我无法使用正常的阅读方式。 这是一个片段: if %w(keywords item_length item_length_feet item_length_inches).all?{|attr| read_attribute(attr).blank?} errors.add(:base, “Please fill out at least one field”) end 就像我说的那样,虚拟的attrbutes(length_inches和length_feet)完全不起作用,普通的属性(length)也可以工作,除非我重新定义了getter / setter。

对于#<ActiveRecord :: ConnectionAdapters :: MysqlAdapter,未定义的方法`explain'

我是Ruby on Rails的新手,但我已经学过一些教程,并且知道我的方法。 我已经生成了一些脚手架并将数据插入到MySql数据库中。 导航到index.html.erb时,我收到标题中的错误 控制器正在执行索引 def index @beers = Beer.all respond_to do |format| format.html # index.html.erb format.json { render :json => @beers } end end 并将此作为一种结构 Beer: id, brewer_id, name, price, score, color, brew_type, create_at, updated_at RoR正在为我创建的其他脚手架工作,并列出数据。 我更新了实体Beer的mysql结构,它可能没有反映rails的变化(dunno)。 我是否需要一个不同的gem来将rails连接到mysql db? 任何关于检查什么的建议都将受到赞赏(:

Rails按记录关联查询

我对Rails相对较新,并且想要了解更多我正在尝试构建一个简单的博客。 我正在进行的一个问题是标记。 我有一个Tag模型,我用它来创建和管理可以应用于post的标签。 我也有一个Post模型。 我需要能够将任何标签与post相关联,检索它们以获得输出,并能够通过特定标签过滤/查询post。 到目前为止,我已经在Post上创建了一个名为tags的列,它被分配了一个Tag ID数组,然后被序列化。 这非常适合检索,但我的理解是,尝试通过序列化列查询记录是一个很大的禁忌 。 正如上面的链接建议,我已经这样做以实现我的filter: Post.all.select { |post| post.tags.include? 3 } 但我知道这是收集我的所有post,然后使用数组方法select过滤它们。 我的问题是:如何将任意数量的Tag记录与Post记录关联,并按给定标记查询/过滤post记录?

创建与.build的关联并解决参数validation问题

使用Rails 3.2.9 我正在尝试使用.build而不是.create构建一个关联,但是获得了一个密码validation错误,我似乎无法找到解决方法。 点评如下: 我理解的方法是保存一个使用.build构建的关联的项目,你实际上必须在这个案例中对所有者进行保存。 如果你在@item上进行保存,它只是创建项而不是关联(意味着它不会保存到DB,直到current_owner.save)。 当我对所有者进行保存时,由于密码不符合validation要求,我遇到了错误。 有没有办法在我进行保存时绕过validation,因为我需要为密码实现不同的解决方案,或者只是停止抱怨并使用.create而不是.build。 下面给出的密码不符合validation错误 @item = current_owner.items.build(params[:item]) if current_owner.save Do some other work with item end 我想我可以做以下事情(出于某种原因,它似乎对我来说可能不是。想法?) @item = current_owner.items.create(params[:item]) if !@item.nil? Do some other work with item end 表设置:所有者: ID 名称 encrypted_pa​​ssword 盐 项目: ID 名称 items_owners: owner_id ITEM_ID 楷模: class Item :items_owner end class Owner :items_owner before_save :encrypt_password […]

Rails Asset Pipeline JS压缩插入“非法字符”

我刚刚在我的javascript中询问了一个关于“非法字符” 的问题 。 那里的答案让我发现在插入各种非法字符的Rails资产管道中压缩javascript存在问题。 我在post中收到的错误是: SyntaxError: Invalid character ‘\u0008’ 我发现不使用压缩导致它完全消失 ……但我想要压缩! 使用Rails默认的uglifer gem发现了该错误。 我想也许这是特定压缩gem的bug,所以我尝试使用Rails文档中指示的其他压缩器。 我有非常相似但不同的错误: Uglifier: SyntaxError: Invalid character ‘\u0008’ Closure: SyntaxError: Invalid character ‘\u0190’ YUI: SyntaxError: Invalid character ‘\u0025’ 我试着查看这些最小化的代码,但因为“无效字符”每次都不同,所以它让我相信其他问题。 这是一个压缩的JS文件示例。 任何人都能指出我在正确的方向吗?

Rails3 + Devise + Simple_form:路径助手中的奇异资源和simple_form_for错误

有两个问题: 如何让simple_form_for使用单一资源:与用户相关联的foo_object(参见下面的代码摘录)? 我得到NoM​​ethodError: simple_form_for行中@foo的未定义方法foo_objects_path 。 foo_object_path有一个有效的路径,但似乎simple_form_for使用复数版本。 我已经google’d并阅读有关单一资源和路径问题的SOpost,但还没有找到解决方案。 我是否需要为:foo_object创建嵌套资源,因为它与:user相关联? 如果是,那么它会与Devise的用户模型冲突吗? 路线: devise_for :users resource :foo_object 模型: :user is the Devise User’s model and has_one :foo_object :foo_object belongs_to :user 查看(haml):(更新6/27/13:更正为=从 – ) = simple_form_for @foo do |f| = f.input :firstname = f.input :lastname = f.button :submit 希望很清楚。 谢谢。

Rails服务器路由错误

尝试使用localhost的URL访问Web应用程序时出现路由错误。 使用Ruby on Rails 3.2和Windows 7 。 问题: 为什么会发生此路由错误? 是否有人建议如何解决这个问题? url: http://localhost:3000/web_app_name 错误消息: 在Web浏览器中: Routing Error No route matches [GET] “/web_app_name” 在命令提示符中: Started GET “/web_app_name” for 127.0.0.1 ActionController::RoutingError (No route matches [GET] “/web_app_name”): actionpack (3.2.9) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call’ actionpack (3.2.9) lib/action_dispatch/middleware/show_exceptions.rb:56:in `ca ll’ railties (3.2.9) lib/rails/rack/logger.rb:32:in `call_app’ railties (3.2.9) lib/rails/rack/logger.rb:16:in `block in call’ activesupport (3.2.9) lib/active_support/tagged_logging.rb:22:in […]

如何从rails中的给定列表创建选择框?

我从控制器传递一个列表 @distinct_grade_list = Student.uniq.pluck(:grade) 从模型学生创建不同的成绩列表 现在在我的视图页面中,如何将其显示为我正在使用的选择框 现在我需要保留A,B,C,D