Tag: ruby on rails 4

Rails用于可以映射到不同模型类型的模型的活动记录关联

我正在构建一个具有User和Product类的RoR应用程序。 一个用户可能有很多照片,也可能是产品,但每个用户也必须有一个profile_picture 。 用户: class User < ActiveRecord::Base has_many :pictures end 产品介绍: class Product < ActiveRecord::Base has_many :pictures end 我正在努力定义目前的pictures模型: class Picture < ActiveRecord::Base has_one :user has_one :product end 图片的架构如下(为简洁起见,省略了时间戳): create_table “pictures”, force: true do |t| t.string “image_url” end 最后,我进行了迁移,为用户和产品添加了个人资料图片的链接 class AddPicturesToUsersAndWalks < ActiveRecord::Migration def change add_column :users, :profile_picture, :picture add_column :products, :profile_picture, :picture end […]

rails上的ruby AbstractController :: Helpers :: MissingHelperError:缺少帮助文件助手//

我刚从另一台计算机上克隆了我正在处理的存储库。 当我尝试通过运行’rake db:migrate’进行数据库迁移时,我收到以下错误: AbstractController::Helpers::MissingHelperError: Missing helper file helpers//users/psmith/projects/clie/projectlion/app/helpers/application_helper.rb_helper.rb 我已经在这里尝试了最常见的答案: Rails:AbstractController :: Helpers :: MissingHelperError – 缺少帮助文件application_helper.rb_helper.rb 它说要在终端中执行以下操作: cd ~ mv projects projects1 mv projects1 projects 我也尝试过: sudo ln -s Users users 但这对我不起作用。 我该怎么办? 更新: 这是我的堆栈跟踪: ps-MacBook-Pro:projectlion psmith$ rake db:migrate rake aborted! AbstractController::Helpers::MissingHelperError: Missing helper file helpers//users/psmith/projects/clie/projectlion/app/helpers/application_helper.rb_helper.rb /Users/psmith/.rvm/gems/ruby-2.2.0/gems/actionpack-4.1.4/lib/abstract_controller/helpers.rb:154:in `rescue in block in modules_for_helpers’ /Users/psmith/.rvm/gems/ruby-2.2.0/gems/actionpack-4.1.4/lib/abstract_controller/helpers.rb:151:in `block in […]

带有has_scope的Rails 4:无声地失败

我有一个Rails 4.0.0应用程序,并希望包含has_scope gem。 非常简单和直接的资源: 模型: class Thing client { where(:client => client)} scope :by_name, -> name { where(:name => name)} 控制器: class ThingsController [:index, :edit] has_scope :by_client, :type => :integer has_scope :by_name …. def index @things = apply_scopes(Thing).all puts current_scopes end current_scopes始终是一个空哈希,无论应用什么范围,Thing.all都会传递给视图。 范围本身是正确的,并正确返回过滤后的记录参数是有的:例如: Started GET “/things?client=113” for 127.0.0.1 at 2014-07-26 16:07:32 +0200 Processing by ThingsController#index […]

rails中两个表之间的2对或多对一对多关系

我有两张桌子: 用户和组 用户has_many组和组,belongs_to用户: u = User.last u.groups 假设我想要一个不同组的第二个列表,原因有些奇怪。 用户可能再次拥有组(在此示例中称为other_group)并且组属于用户。 u = User.last u.other_groups 如何在这种关系中关联两个模型,两次使用Active Record?

迁移以创建默认值

所以我想知道我们是否可以编写一个新的迁移来设置已经创建的字段的默认值。 我知道如何编写旧的迁移编辑并设置其默认值。 我想这样做是因为我做了很多迁移,现在我无法回滚并编辑该文件。 而且,有没有办法回滚到特定的迁移? 提前致谢

模型缺少’image_file_name’所需的attr_accessor – Ruby on Rails 4

当我发布一个新的聚会时,我收到以下错误消息: 派对模型缺少’image_file_name’所需的attr_accessor ,它指向我的parties_controller.rb中的代码: def create @party = Party.new(party_params) 我很难理解这个错误的原因, 这是我正在使用的其他代码 party.rb class Party { :medium => “300×300>”, :thumb => “100×100>” } validates :description, presence: true validates :image, presence: true end parties_controller.rb class PartiesController < ApplicationController before_action :set_party, only: [:show, :edit, :update, :destroy] # GET /parties # GET /parties.json def index @parties = Party.all end # […]

强参数:未允许的参数:has_many_through关系中的标记

我有几个型号/控制器: event.rb: class Event < ActiveRecord::Base belongs_to :category belongs_to :user has_many :event_tags has_many :tags, through: :event_tags has_many :event_skills has_many :skills, through: :event_skills tag.rb class Tag < ActiveRecord::Base has_many :events, through: :event_tags has_many :event_tags end event_tag.rb class EventTag < ActiveRecord::Base belongs_to :event belongs_to :tag end user.rb: class User < ActiveRecord::Base has_many :events # organized_events events_controller.rb class […]

如何使用Paperclip和Image Picker on Rails 4上的options_for_select保存图像?

我正在尝试通过一个表单来保存图像,该表单填充了一个带有多个选项的“选择”字段。 当用户单击选定图像时,选择表单使用图像选择器更改选项。 提交表单后,应使用Paperclip gem保存所选图像。 我想我只需要将所选选项中的图像URL指向一个将在Paperclip中打开它的方法,但我不太清楚如何做到这一点。 我是Rails的新手,谦虚地欣赏任何能指引我正确方向的东西! 这就是我所拥有的: _form.html.erb v ] } )) %> 如果我使用“:medium”,就像我通常在设置表单输入时所做的那样,我得到一个错误,上面写着“ActiveRecord :: AssociationTypeMismatch at / stories Medium(#70334728193840)”,得到字符串(#70334669736760)“,所以我尝试使用“:medium_id”,它显示所选选项的值而不是url。 使用“:medium_id”允许其余的表单字段正确保存而不会出现错误,但只保存图像的选项值,而不是图像本身。 story.rb class Story < ActiveRecord::Base belongs_to :medium accepts_nested_attributes_for :medium stories_controller.rb class StoriesController [], medium_attributes: [:medium, :image], ) medium.rb require “open-uri” class Medium < ActiveRecord::Base has_one :story before_save :image_from_select def image_from_select(url) self.image = open(url) end […]

Geocoder Gem – 获取request.location.country的“保留”(即使在Local!中)

我需要能够在本地查看地理编码器国家和城市的输出,以获得“Hi,Yu在{country detected}中”的消息。 为了能够在本地/开发模式下使用地理编码器,我已经遵循了一些SO建议并放置: 在config / environment / development.rb中 class ActionDispatch::Request def remote_ip “84.34.156.155” # fake ip for example end end 并在application_controller中 def lookup_ip_location if Rails.env.development? Geocoder.search(request.remote_ip).first else request.location end end 在我的主页上,如果我把: 您在中 它在本地显示“你在保留”。 它认为ip = 00.00.00并且构建地理编码器以返回“在那种情况下保留”。 很公平,如果我把:,它然后工作,并给我我已放入config / environment / develomment.rb的IP:84.34.156.155 所以我试图把“你在”,但它不起作用,并给我错误: undefined method `country’ for 84.34.156.155″:String 如何在本地显示我设置的IP位置的国家/地区! 谢谢 它在生产中工作正常(它显示’你在法国’!)但不在本地! 我能怎么做? 我可以在本地工作和检查东西,而不是每次都要部署以检查它是否有效。

如何使用postgresqlvalidationRails中的重叠时间

我有一个Event model ,在我的日程安排应用程序中有end_at时间和end_at时间,我想在保存之前validation重叠时间。 我在Cloud9上创建了rails应用程序。 我的观点图如下; Day1 07:00 – 07:20 event1 10:30 – 11:30 event2 15:40 – 16:10 event3 [add event button] Day2 08:15 – 09:05 event4 12:08 – 13:04 event5 14:00 – 14:25 event6 [add event button] [save schedule button] end_at time和end_at时间可以同时更改和添加。 我想做的是显示错误,如果我尝试为Day1添加(或更改) 07:05 – 07:30 ,例如, 13:50 – 14:30 ,依此类推。 例如; app_development =#select * […]