Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。



7
如何在ActionMailer视图中使用视图帮助器?
我想使用app/helpers/annotations_helper.rb在ReportMailer视图(app/views/report_mailer/usage_report.text.html.erb)中定义的方法。我该怎么做呢? 根据本指南,该add_template_helper(helper_module)方法似乎可以满足我的要求,但我不知道如何使用它。 (顺便说一句,您是否有理由在邮件视图中访问另一组帮助者?这很烦人。)

5
Rails 4的回形针:: Errors :: MissingRequiredValidatorError
尝试在Rails博客应用中使用回形针进行上传时出现此错误。不知道当它说“ MissingRequiredValidatorError”时指的是什么,我认为通过更新post_params并给它:image会很好,因为创建和更新都使用post_params Paperclip::Errors::MissingRequiredValidatorError in PostsController#create Paperclip::Errors::MissingRequiredValidatorError Extracted source (around line #30): def create @post = Post.new(post_params) 这是我的posts_controller.rb def update @post = Post.find(params[:id]) if @post.update(post_params) redirect_to action: :show, id: @post.id else render 'edit' end end def new @post = Post.new end def create @post = Post.new(post_params) if @post.save redirect_to action: :show, …

12
Rails局部模板中的可选局部变量:如何摆脱(已定义?foo)混乱?
我一直是个坏孩子,如果在渲染局部变量时未在:locals哈希中明确定义值,则在局部模板中使用以下语法设置局部变量的默认值- <% foo = default_value unless (defined? foo) %> 直到最近,这(似乎我无法辨别)未通过的变量开始表现出来就好像它们已被定义为nil(而不是未定义)一样,似乎一直很好。 正如SO的各种乐于助人的人指出的那样,http://api.rubyonrails.org/classes/ActionView/Base.html说不要使用 defined? foo 而是使用 local_assigns.has_key? :foo 我正在尝试修改自己的方式,但这意味着要更改很多模板。 我可以/应该提前收费并在所有模板中进行此更改吗?我需要注意什么技巧吗?我需要多么努力地测试每一个?

7
创建新用户时ActiveModel :: ForbiddenAttributesError
我在Ruby中有这个模型,但是它抛出了一个 ActiveModel::ForbiddenAttributesError class User < ActiveRecord::Base attr_accessor :password validates :username, :presence => true, :uniqueness => true, :length => {:in => 3..20} VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, :uniqueness => true, format: { with: VALID_EMAIL_REGEX } validates :password, :confirmation => true validates_length_of :password, :in => 6..20, :on => :create before_save …

5
在Ruby中的多行中拆分长字符串而不剥离换行符
我们最近决定在我的工作中使用红宝石风格指南。命令之一是,任何行都不能超过80个字符。由于这是一个Rails项目,所以我们通常使用的字符串会长一些-即“ 用户X希望向您发送有关Thing Y的消息 ”,但这些字符串并不总是符合80个字符的样式限制。 我了解通过三种方式使长字符串跨越多行: 赫雷多克 %Q {} 实际的字符串连接。 但是,所有这些情况最终都需要花费更多的计算周期,这似乎很愚蠢。字符串连接很明显,但是for HEREDOC和%Q我必须通过类似来删除换行符.gsub(/\n$/, '')。 有没有一种纯粹的语法方式可以做到这一点,就等于将整个字符串放在一行上?显然,目标是不花费任何额外的周期,仅仅是因为我希望我的代码更具可读性。(是的,我意识到您必须进行很多折衷……但是对于字符串长度,这似乎很愚蠢。) 更新:反斜杠并不是我想要的,因为您丢失了缩进,这实际上会影响样式/可读性。 例: if foo string = "this is a \ string that spans lines" end 我发现以上内容有点难以阅读。 编辑:我在下面添加了一个答案;三年后,我们现在有了曲折的heredoc。

11
您在Rails中的相对时间如何?
我正在编写一个Rails应用程序,但似乎找不到相对时间的方法,即如果给定某个Time类,它可以计算“ 30秒前”或“ 2天前”,或者它的时间超过一个月“ 2008年9月1日”等


5
Rails.env和RAILS_ENV
在检查正在运行的环境时,我在示例中都看到了这两种情况。首选什么?就所有意图和目的而言,它们是否相等?


20
无法安装pg gem
我尝试使用,gem install pg但似乎不起作用。 gem install pg 给出这个错误 Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. C:/Ruby/bin/ruby.exe extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config …


4
将querystring参数添加到link_to
我很难将querystring参数添加到link_to UrlHelper。例如,我有一个Index视图,其中包含用于排序,过滤和分页的UI元素(通过will_paginate)。will_paginate插件可以正确管理querystring参数的页内持久性。 是否有自动机制将querystring参数添加到给定命名路由,还是我需要手动进行?对这个看似简单的结构的大量研究使我毫无头绪。 编辑 一些挑战: 如果我有两个querystring参数,bucket和sorting,如何在link_to中为其中一个设置特定值,同时保留另一个的当前值?例如: <%= link_to "0", profiles_path(:bucket => '0', :sorting=>?? ) %> 如果我有多个querystring参数,bucket&sorting和page_size,并且要将值设置为其中之一,是否可以“自动”包括其余参数的名称和值?例如: <%= link_to "0", profiles_path(:bucket => '0', [include sorting and page_size name/values here] ) %> will_paginate插件自动管理其页面变量和其他querystring变量。似乎没有用于管理页面大小的自动UI元素。虽然我看到了创建页面大小选择列表的代码,但我宁愿为此使用A元素(例如SO)。此挑战的一部分与#2有关,一部分与基于记录的存在/不存在隐藏/显示此UI元素有关。换句话说,如果有要记录的页面,我只想包括页面大小的链接。而且,我更喜欢自动包括其他QS变量(即页面,存储桶,排序),而不是必须在link_to中按名称包括它们。

12
Ruby on Rails:在哪里定义全局常量?
我刚开始使用我的第一个Ruby on Rails Webapp。我有很多不同的模型,视图,控制器等等。 我想找到一个粘贴真正的全局常量的好地方,该定义适用于我的整个应用程序。特别是,它们既适用于我模型的逻辑,也适用于我观点中的决策。我找不到任何DRY放置这些定义的位置,这些定义对于我的所有模型和我的所有视图均可用。 举一个具体的例子,我想要一个常量COLOURS = ['white', 'blue', 'black', 'red', 'green']。在模型和视图中,都可以在各处使用它。我在哪里可以在一个地方定义它以便访问? 我尝试过的 与它们最相关的model.rb文件中的常量类变量,例如@@COLOURS = [...]。但是我找不到一种明智的定义方式,这样我就可以在我的观点中写,Card.COLOURS而不是像这样的笨拙了Card.first.COLOURS。 模型上的方法,类似def colours ['white',...] end-同样的问题。 application_helper.rb中的一个方法-到目前为止,这是我正在做的事情,但是只能在视图中访问助手,而不能在模型中访问 我想我可能已经在application.rb或environment.rb中尝试了一些东西,但是那些看起来似乎并不正确(它们似乎也不起作用) 难道没有办法定义从模型和视图都可以访问的内容吗?我的意思是,我知道模型和视图应该分开,但是肯定在某些领域中有时会需要引用相同的领域特定知识吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.