Tag: ruby on rails 4

表单提交按钮仅在重新加载后有效

我有一个构建表的索引页面,我试图允许用户编辑表中的行。 我试图以最基本的方式做到这一点 – 没有javascript,ajax等,除非Rails提供它。 我的表在index方法中显示正常,并且有一个表单作为表中的最后一行,可用于添加新行。 新表格工作正常。 每行都有一个编辑链接,可以路由到控制器的编辑方法。 控制器设置要编辑的对象,并使用要编辑的行中的表单呈现索引。 我的问题是这个表单不会提交,但如果我刷新页面就会提交。 页面将在刷新后提交的事实非常令人困惑。 我没有看到刷新会如何做什么不同然后点击链接(它应该仍然通过相同的路由,相同的变量对吗?)我看不清楚刷新前后的formshtml有什么区别。 有什么想法可能会发生什么? 我不确定甚至开始查看的代码是什么,但是这里有。 index.html.erb … … _form_in_table.html.erb _bom_in_table.html.erb boms_controller.rb … def edit @bom = Bom.find(params[:id]) @li = @bom.line_item @boms = @li.boms.sorted_by_part_number @parts = Part.sorted_by_number render ‘index’ end … 如果这对解密代码/意图很有用,我有line_items,parts和boms的集合; line_item有很多boms,line_item有许多部分通过boms。 除了零件/订单项关系外,boms还有一个数量。 Bom是物料清单的缩写。 @li是被操纵的line_item。 我遇到问题的表单是查看/添加/编辑属于订单项的boms(数量和部件)的集合。 添加日志 Started GET “/line_items/8/boms” for 127.0.0.1 at 2013-10-14 14:27:27 -0400 Processing […]

管理命名空间,嵌套资源不保存

我在管理命名空间中创建嵌套资源时遇到问题。 我对命名空间有些新意。 我已经阅读了Stack上的几篇文章,但无济于事,也许我正在实现这个错误。 我有一个管理模型(设计),我试图将地址嵌套到我创建的自定义用户显示页面,这就是问题所在。 在尝试为管理员创建新地址时,我在提交表单时收到此错误: ActionController::UrlGenerationError at /admin/admins/2CE0/addresses No route matches {:action=>”show”, :admin_id=>”2CE0″, :controller=>”admin/admins/admin/addresses”} missing required keys: [:id] 更好的错误页面的屏幕截图: 我的Routes.rb namespace :admin do devise_for :admins, controllers: { sessions: ‘admin/admins/sessions’, passwords: ‘admin/admins/passwords’, registrations: ‘admin/admins/registrations’, confirmations: ‘admin/admins/confirmations’, unlocks: ‘admin/admins/unlocks’, shared: ‘admin/admins/shared’ } resources :admins, controller: ‘admins/admin’, shallow: true do resources :addresses, except: [:index], controller: ‘admins/admin/addresses’ end end […]

没有出现与回形针的路轨图象

我想在我的主页上显示一个头像。 我正在使用Paperclip来做到这一点。 但是,每当我尝试显示图像时,我都会得到: 这就是我的代码: 视图: Users @ user.username确实正确显示。 和我试图展示的任何其他财产一样。 debug语句返回:“— /images/original/missing.png?1400548644” 但是,我可以在这里找到图像: ./public/system/users/avatars/000/000/001/original/myImage.png 但是在这里找不到: ./app/assets/images 是否可能在错误的地方得救? 以下是我的其余代码供参考: 模型: class User { :medium => “300×300>”, :thumb => “100×100>” }, :default_url => “/images/:style/missing.png” validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ validates :username, :presence => true, :uniqueness => true, :length => { :in => 3..20 } validates :email, :presence => […]

PG :: UndefinedTable:错误:关系“…”不存在

在迁移时,我收到以下错误消息: PG::UndefinedTable: ERROR: relation “actioncodes” does not exist : ALTER TABLE “organizations” ADD CONSTRAINT “fk_rails_4ecaa2493e” FOREIGN KEY (“actioncode_id”) REFERENCES “actioncodes” (“id”) 我有组织的以下迁移文件: class CreateOrganizations < ActiveRecord::Migration def change create_table :organizations do |t| t.string :name, null: false, limit: 40 t.references :actioncode, index: true, foreign_key: true t.boolean :activated t.datetime :activated_at t.timestamps null: false end end end 对于Actioncodes,我有迁移文件: […]

Ruby:如何使用update_all(属性)处理乐观锁定

我正在尝试为种族条件实施乐观锁定。 为此,我在Product:Model中通过迁移添加了额外的列lock_version 。 #Product: Model’s new field: # attribute_1 # lock_version :integer(4) default(0), not null before_validation :method_1, :if => :recalculation_required_attribute def method_1 #### #### if self.lock_version == Product.find(self.id).lock_version Product.where(:id => self.id).update_all(attributes) self.attributes = attributes self.save! end end 产品型号具有attribute_1 。 如果attribute_1需要重新计算,则before_validation: method_1将调用。 我使用lock_version使用乐观锁定。 但是, update_all不会增加lock_version 。 所以我开始使用save! 。 现在我收到一个新错误: SystemStackError: stack level too deep因为self.save! 触发before_validation: method1 […]

Ruby没有安装json -v 1.8.1作为bundle的一部分,ERROR:无法构建gem原生扩展

我已尝试使用作为捆绑包的一部分并使用sudo进行安装,但每次都会收到相同的错误消息。 我目前使用的是Ruby 2.0.0 and Rails 4.1.8 。 我不确定发生了什么。 以下确切的错误消息: 从https://rubygems.org/获取gem元数据………. 解决依赖关系…… 使用rake 10.4.2使用i18n 0.6.11 Gem :: Ext :: BuildError:错误:无法构建gem原生扩展。 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20141218-80226-brqexc.rb extconf.rb mkmf.rb在/ System / Library中找不到ruby的头文件/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h extconf失败,退出代码1 Gem文件将保留在/Library/Ruby/Gems/2.0.0/gems/json-1.8.1中进行检查。 结果记录到/Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14/2.0.0/json-1.8.1/gem_make.out安装json(1.8.1)时发生错误,而Bundler无法继续。 在捆绑之前确保gem install json -v ‘1.8.1’成功。 任何建议表示赞赏

Rails – 如何为存根/伪造的http或ajax响应存根特定的响应时间

我想测试一个function,当我的应用程序在Rails UJS / ajax超时时发送usera自定义消息。 超时Rails UJS请求的代码本身就在应用程序上: $.rails.ajax = function(options) { if (!options.timeout) { options.timeout = 10000; } return $.ajax(options); }; 当观察chrome dev工具在我的本地开发模式下超时时发生的事情时,我注意到代码状态奇怪地是200但是当它“超时”时,我的消息确实显示给用户。 on(‘ajax:error’,function(event,xhr, status, error){ // display message in modal for users if(status == “timeout”) { console.log( ‘ ajax request timed out’); var msg; msg = Messenger().post({ hideAfter: 8, message: “Too long, the app timed […]

将图像上传到资源文件夹

我正在按照本指南使用PaperClip通过ActiveAdmin上传图像: 使用回形针使用Activeadmin Rails上传文件 一切都运行正常,但我想知道,在我上传图片后,如何将其重定向到上传到/ assets / images /只在数据库中?

为什么此代码在我的所有页面上呈现背景图像,而不仅仅是我的索引操作?

我试图只使我的索引操作呈现样式表/背景图像,但由于某种原因,背景图像也出现在所有其他页面上。 我的欢迎控制器正在处理所有这些。 布局文件名为background.css.scss。 这是我的欢迎控制器: class WelcomeController < ApplicationController layout :resolve_layout def index end def show end def about end def testimonials end private def resolve_layout case action_name when "index" "background.css.scss" else "application" end end end 这是background.css.scss样式表: body { width: 100%; background: { image: asset-url(“sampleimage.png”); repeat: no-repeat; size: 100% auto; } } 索引视图: background-image: url()

Geocoder Gem:如何在两种不同型号之间使用?

我正在使用Geocoder和Will Paginategem根据用户所在位置和孩子妈妈的地址之间的距离来对结果进行排序。 我的模型是这样的: class User has_many :kids geocoded_by :address end class Kid belongs_to :mom belongs_to :dad end class Mom has_many :kids has_many :dads, through: :kids geocoded_by :address end class Dad has_many :kids has_many :moms, through: :kids end 现在,我正在尝试使用正确的范围,我将使用Users.address并将其与Kids.moms.addresses进行比较 def show @dad = Dad.find(params[:id]) @user_location = current_user.address @kids = @dad.kids.near(@user_location, 100).paginate(page: params[:page], per_page: 25).order(created_at: :desc) end […]