Tag: ruby on rails 4

Rails迁移:如何通过使用ROR迁移来增加INTEGER大小

我的联系人表号列是Integer类型。 现在我打算增加限额。 任何人请告诉我如何通过使用ROR迁移来增加限制。

如何使用表单连接has_one与条件的关系

我有一个has_one通过关系,条件连接我的应用程序中的旅行和地址。 每次旅行都有两个地址:起点和目的地。 地址可用于许多不同的旅行,可以是起点或目的地。 在应用程序中,行程和地址通过名为TripLocation的模型连接,该模型作为布尔列“目标”设置地址是否作为行程的目的地。 要查看有关该关系的更多信息,请参阅我之前提出的有关同一应用程序的问题: 在分配不同角色时在Rails中执行Has_many 我希望应用用户在创建旅行时从源和目的地的可能地址列表中进行选择。 这就是我所拥有的,我知道这是不正确的: #other trip things here like date and time (最终我将限制Address.all的地址选择,但是现在我希望这个版本能够工作。) 当我尝试从此表单提交时,我收到以下错误消息: NoMethodError in TripsController#create undefined method ‘id’ for “1”:String 所以这似乎是期望有一个对象(带有id)而不是包含对象id的字符串。 我知道数据库中应该出现哪些新条目以正确连接所有内容,但我不确定如何使用rails来实现目标,并且我很感激任何信息都指向了正确的方向。 编辑:以下是trips_controller中创建操作的代码: def create @trip = Trip.new(trip_params) if @trip.save redirect_to @trip, notice: ‘Trip was successfully created.’ else render action: ‘new’ end end 由于这是Rails 4,trip_params是以下私有方法: def trip_params params.require(:trip).permit(:origin, :destination, […]

如何在1次呼叫中急切加载两级关联?

我有FamilyTree, Node, Comment, & User模型。 这种关系是这样的: FamilyTree class FamilyTree < ActiveRecord::Base belongs_to :user has_many :memberships, dependent: :destroy has_many :members, through: :memberships, source: :user, dependent: :destroy has_many :nodes, dependent: :destroy end Node class Node < ActiveRecord::Base belongs_to :family_tree belongs_to :user has_many :comments, dependent: :destroy end Comment class Comment < ActiveRecord::Base belongs_to :user belongs_to :node end User […]

rails4多站点在视图中显示主机 – 有时可行

现在整个下午一直在努力…… 我在heroku上有一个代码库多个应用程序设置。 我试图在我的主域上运行的主页(stati_controller)上显示主机:www.domain.hu(env:production,production.rb)但不在另一个主页上:www.domain.co。 uk(env:production-uk,production-uk.rb)Debug告诉我:nil我缺少什么? 基于此 ,我尝试了以下但没有运气(一个接一个地尝试……)。 在production-uk.rb中 : Rails.application.default_url_options[:host] = ‘www.domain.co.uk’ Rails.application.default_url_options[:host] = ‘domain.co.uk’ config.asset_host = ‘www.domain.co.uk’ – this “kills” the CSS config.default_url_options = { host: ‘www.domain.co.uk’ } config.default_url_options[:host] = ‘domain.co.uk’ config.action_controller.default_url_options = { host: ‘www.domain.co.uk’ } config.action_controller.default_url_options = { host: ‘domain.co.uk’ } Rails.application.default_url_options = { host: ‘domain.co.uk’ } config.action_controller.default_url_options = { host: ‘domain.co.uk’ } […]

如何将url传递给partial / form?

我想将url传递给一个部分的表单。 但是,当前安装程序会生成错误消息: SyntaxError in OrganizationsController#new syntax error, unexpected keyword_do, expecting keyword_end …or(@organization), url=”url” do |f| @output_buffer.safe_appe… … 该错误突出显示部分/表单的第3行,即 两个视图都使用partial / form,为此包括: ## View1: ## View2 (url should point to `def create` in organizations controller): 路线包括: resources :organizations post ‘signup/register’ => ‘organizations#checkout’, as: ‘signup_checkout’ 部分注册表包括: … ???? 在控制器中Def new : def new if (logged_in?) flash[:danger] = […]

Rails 4活动记录validation – 如果存在至少一个属性而有条件地validation4个属性的存在,同时不允许存在

我有一个包含10个属性的表单。 其中我有4个属性,我需要应用我称之为“互为条件存在”的Active Recordvalidation。 我要那个 (A)如果至少存在一个,则必须存在另外3个 (B)仍然不允许存在(如果其他3为空白,则第四个有空白) 以下是四个属性: 地址第一行 邮政编码 州 国家 这意味着如果用户填写其中一个,那么所有其他人必须在场。 但如果一切都是空白的,那没关系。 到目前为止,我只能设法强制执行(A)。 但我未能实施(B)。 实际上,当我尝试在4个属性validation中的一个上使用allow_blank:true时,它会中断(A),因为在此之后,它不能确保如果存在属性,则其他属性也必须如此。 这该怎么做? 这是我目前的代码 规格/型号/用户 validates :address_line_1, presence: true, if: :pa_subelements_mutual_presence? length: { maximum: 100, minimum: 3 } validates :zipcode, presence: true, if: :pa_subelements_mutual_presence?, length: { maximum: 20, minimum: 4} validates :state, presence: true, if: :pa_subelements_mutual_presence?, validates :country, presence: true, if: […]

使用activerecord发出请求,仅从组中获取用户,而不从其他用户获取

我正在尝试从少数组中获取用户(使用给定的ID)并从其他组中排除用户。 我尝试过类似的东西: User.joins(:groups).where(groups: {id: [“8939″,”8950”]}).where.not(groups: {id: 8942}).map(&:id) User Load (0.9ms) SELECT “users”.* FROM “users” INNER JOIN “groups_users” ON “groups_users”.”user_id” = “users”.”id” INNER JOIN “groups” ON “groups”.”id” = “groups_users”.”group_id” WHERE “groups”.”id” IN (8939, 8950) AND “groups”.”id” != $1 [[“id”, 8942]] => [119491, 119489, 119490, 119492, 119488, 119484, 119483, 119491, 119482] 但这不正确 8942组中的用户。 Group.find(8942).users.pluck(:id) Group Load (0.4ms) […]

在设置Devise时迁移时获取’undefined method`to_sym’

我正在尝试设置Pageflow。 最后,我设法创建了数据库并安装了页面流。 我可以运行rails s但是我的Migrations are pending; run ‘bin/rake db:migrate RAILS_ENV=development’ to resolve this issue. Migrations are pending; run ‘bin/rake db:migrate RAILS_ENV=development’ to resolve this issue. 在我的浏览器中。 无论如何,键入bundle exec rake db:create db:migrate会给我这个错误: == AddDeviseToUsers: migrating =============================================== — change_table(:users) rake aborted! StandardError: An error has occurred, all later migrations canceled: undefined method `to_sym’ for {:null=>false, :default=>””}:Hash/Users/user/.gem/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:671:in `type_to_sql’ […]

如何使用具有默认排序的依赖destroy子目录销毁ActiveModel实例?

在Rails 4.0中,我有2个ActiveRecord类: class Sequence < ActiveRecord::Base has_many :steps, dependent: :destroy end 和 class Steps { order(‘order ASC’) } end 当我调用mySequence.destroy我收到此错误: PG :: SyntaxError:错误:“order”或其附近的语法错误第1行:…步骤“WHERE”步骤“。”sequence_id“= $ 1 ORDER BY order ASC ^:SELECT”steps“。* FROM”steps“WHERE “steps”。“sequence_id”= $ 1订购ASC 当我删除默认范围时,错误消失了,但我显然必须在我的代码中按顺序排序。 我确实尝试像这样定义关联,并省略default_scope语句: class Sequence < ActiveRecord::Base has_many :steps, dependent: :destroy, order: 'order ASC' end 但它抛出了同样的错误。 还有其他人有这个问题吗? 这是Rails中的错误吗? 我想在孩子们的destroy sql语句中不需要排序。

select2 rails表单什么都不发送

我堆积了。 我正在使用select2和acts_as_taggable来标记我的订单模型。 这是一个代码 true, :class =>”category” %> 还有脚本: $(document).ready(function() {$(“.category”).select2(); }); 一切正常,没有连接脚本(使用select2),但如果使用,它看起来工作正常,但它发送空字符串,提交后你没有得到任何标签。 有人可以帮忙吗?