Tag: ruby on rails 4

如何通过接受嵌套属性的多对多关系创建新记录?

Organization和User通过Relationship进行多对多关联。 最初我实现了这个1对多的关联,但是现在我需要通过关联来成为多对多关系。 所以我创建了Relationship模型并更改了模型文件中的关联。 Organization接受User嵌套属性,就像在我的应用程序中一样,我有两个连接的注册表单。 另外,我在我的种子文件中使用它: Organization.create!(name: “name”, …).users.create(email: “email@email.com”, …) 这是一个1对多的关联,但现在它是一个多对多的通过关联,它产生播种错误: Validation failed: Member can’t be blank, Moderator can’t be blank 这指的是Relationship模型的变量, User和Organization通过该变量关联。 导致此错误的原因; 为什么这些值是空白的? 对于多对多关联, Organization.create行可能不正确吗? member和moderator具有默认值(请参阅迁移文件)。 我希望它能用默认值创建organization , user和relationship 。 我还应该如何创建新的组织和用户? 组织模式: has_many :relationships, dependent: :destroy has_many :users, through: :relationships accepts_nested_attributes_for :relationships, :reject_if => :all_blank, :allow_destroy => true validates_associated :users 关系模型: belongs_to :organization […]

用户的未定义方法attr_accessible错误

我正在尝试创建各种登录。 我创建了一个用户脚手架,并在我的user.rb中包含此代码 class User < ActiveRecord::Base attr_accessible :name, :password_digest, :password, :password_confirmation has_secure_password end 我一直收到这个错误 undefined method `attr_accessible’ for # Extracted source (around line #2): 1 2 3 4 5 class User < ActiveRecord::Base attr_accessible :name, :password_digest, :password, :password_confirmation has_secure_password end Rails.root: C:/Sites/web

安装eventmachine(1.0.3)时发生错误,Bundler无法继续

我试图让ruby在rails上设置我的mac运行os x 10.10。 我试图让服务器运行开源项目kandan但是当我尝试在eventmachine 1.0.3 gem上捆绑安装时遇到错误。 我不确定我到底在看什么,有人可以帮我解决这个问题吗? bundle install Fetching gem metadata from https://rubygems.org/…………. Fetching version metadata from https://rubygems.org/… Fetching dependency metadata from https://rubygems.org/.. Using rake 10.4.2 Using i18n 0.6.11 Using multi_json 1.10.1 Using activesupport 3.2.21 Using builder 3.0.4 Using activemodel 3.2.21 Using erubis 2.7.0 Using journey 1.0.4 Using rack 1.4.5 Using rack-cache 1.2 Using […]

如何将current_user传递给Sidekiq的Worker

我试图将current_user或User.find(1)传递给工作模块,但在sidekiq的仪表板中获取错误(localhost:3000 / sidekiq / retries): NoMethodError:未定义的方法`支持’为“#”:String 注意:我的关系很好,即: u = User.find(1) u.supports #=> [] supports_controller.rb: def create @user = current_user ProjectsWorker.perform_async(@user) … end 应用程序/工人/ projects_worker.rb: class ProjectsWorker include Sidekiq::Worker def perform(user) u = user @support = u.supports.build(support_params) end end 重新启动我的sidekiq服务器没有任何区别。 这是在我的开发机器上。

best_in_place在rails 4中有多对多的关系

我已经制作了一个github回购,你可以在这里找到这个问题。 我有3个型号: class User { where(user_countries: {:event => true}) }, :through => :user_countries, :source => :country has_many :research_countries, -> { where(user_countries: {:research => true}) }, :through => :user_countries :source => :country end class UserCountry < ActiveRecord::Base belongs_to :country belongs_to :user end class Country < ActiveRecord::Base # … end 因此用户应该能够选择event_countries和research_countries。 这是我的用户控制器(没什么复杂的): class UsersController [:id, :name]) end […]

注销不使用Heroku – 使用Devise gem和Rails 4

我刚刚使用Devise进行身份validation的Rails 4应用程序初始部署到Heroku。 注销在本地工作,但Heroku返回错误“您正在寻找的页面不存在”,并且它不会将用户注销。 根据Heroku日志和Google / SO搜索,看起来原因是Heroku使用的是GET请求而不是DELETE – 尽管我的应用代码指定了链接的:delete方法,而Devise使用DELETE进行签名默认。 有些文章建议Heroku使用GET,以便用户可以在没有启用JavaScript的情况下注销,但我的代码中包含JS include标记,并且在我的浏览器中启用了JS。 (我已经使用Chrome和Safari进行了检查。) 我找到了更改配置的说明,以便Devise使用:get而不是:delete,但我更愿意使用更安全:delete方法,如果可能的话。 感谢到目前为止的想法。 回答你的问题: 这是我的链接: 这是我在head标签中加载javascript的内容: true %> 控制台中未报告任何JS错误。

自动加载常量时检测到循环依赖性

我将Rails从版本3.1.2(工作正常)升级到4.0,并且遇到以下错误: circular dependency detected while autoloading constant Foo 我创建了一个ProductFactory类,我在其中实例化不同的模型。 例如: p = Foo.new(params) 模型”Foo”并不总是ActiveRecord。 任何人都可以帮我解决这个问题吗?

Rails 4.模型中的国家validation

我正在创建rails API,并希望为国家/地区字段添加validation,其中包含模型级别的ISO 3166-1代码。 例如,如果使用gem carmen-rails ,它只提供helper country_select 。 是否可以在模型中使用ISO 3166-1代码的国家validation?

如何获取调用别名方法的名称?

我有一个名为link_to_admin方法,然后我将另一个名为simple_link_to方法别名 def link_to_admin(name,url,options={}) # My stuff here link_to(name,url,options) end alias_method :simple_link_to, :link_to_admin 在这里我link_to_admin一个问题,如果我调用link_to_admin ,我想将值打印到 标签中 防爆。 def link_to_admin(name,url,options={}) # My stuff here menu = “” menu << " #{link_to(name,url,options)}” menu.html_safe end 如果我打电话给simple_link_to不需要 标签。 所以目前我正在传递一个像li_required这样的options然后在我的方法中检查条件。 这是完美的,我知道这是正确的方法。 def link_to_admin(name,url,options={}) menu = “” menu << options[:li_required] ? " #{link_to(name,url,options)}” : link_to(name,url,options) menu.html_safe end 但是,在我尝试找到像simple_method或link_to_admin类的调用方法simple_method ,我试过: 1.__method__ 2.caller[0]=~/`(.*?)’/ 这没有按预期工作。 […]

Rails 4:拥有一个代理模型来组合多个模型

我正在尝试我的手(4)。 我早些时候做了一些Sinatra。 我有一个注册表单,用户可以在其中填写他的组织名称,地址和他自己的名字,密码等。我有两个表 – 用户和组织,这些表填充了注册数据。 所以,我有两个活跃的记录模型users和organizations 。 我的控制器如下所示: class SignupsController < ApplicationController # GET /signup def new # show html form end # POST /signup def create @signup = Registration.register(signup_params) respond_to do |format| if @signup.save format.html { redirect_to @signup, notice: 'Signup was successfully created.' } else format.html { render action: 'new' } end end end […]