天道酬勤,学无止境

ruby-on-rails-3

Ruby on Rails: Why a select box does not show the current object value?

问题 以下是来自views/products/edit.html.erb的相关代码: <%= form_for(:product, :url => {:action => 'update', :id => @product.id}) do |f| %> <%= render(:partial => "form", :locals => {:f => f}) %> <%= submit_tag("Update Product") %> <% end %> 来自views/products/_form.html.erb : <%= select_with_new_option(f, :shop, :name, :id) %> 并来自helpers/products_helper.rb : def select_options_with_create_new(objects, text_field, value_field, options={}) object = objects.to_s.singularize all_objects = object.capitalize.constantize.all all_objects = all_objects.sort_by(&options[:order_by]) if options.has_key?(:order_by)

2022-05-17 03:01:47    分类:技术分享    ruby-on-rails   forms   select   ruby-on-rails-3

Rails 3: Get current namespace?

问题 使用方法 :layout_for_namespace 我根据我是在前端还是后端设置应用程序的布局,因为后端使用命名空间“admin”。 我找不到一个很好的方法来找出我是哪个命名空间,我找到的唯一方法是解析来自 params[:controller] 的字符串。 当然这很容易,似乎是故障安全且工作良好。 但我只是想知道是否有更好的、准备好的方法来做到这一点。 有人知道吗? 目前我只是使用以下方法: def is_backend_namespace? params[:controller].index("admin/") == 0 end 提前致谢 阿恩 回答1 在Rails 6中,控制器类似乎没有namespace方法。 在视图中看起来最干净且对我有用的解决方案是: controller.class.module_parent 具体来说,如果你的命名空间是 Admin:: 并且你想要'admin',你会这样做: controller.class.module_parent.to_s.downcase 回答2 self.class.parent == Admin 回答3 path = self.controller_path.split('/') @namespace = path.second ? path.first : nil 回答4 namespace =

2022-05-16 03:29:25    分类:技术分享    ruby-on-rails   ruby-on-rails-3   namespaces   actioncontroller

How to get Conditional Groups in Ransack?

问题 使用 Railscast 和 Ransack 演示代码,我可以像这样构建高级搜索 下拉“所有/任何”来自 <%= f.combinator_select %> 并且它有效,但我需要具有 (X AND Y) OR (A AND B) AND (M OR N) 等的条件组,我无法要得到。 我多次看到 Ransack Demo 示例,但它使用的是 Rails 5,我对其中的某些部分不是很清楚。 这是我在 Rails 4 中的代码,你能告诉我如何获得条件分组吗? 路线.rb resources :data do collection do get :search post :search, to: 'data#search' end end 数据.rb def search @search = Data.search(params[:q]) @datum = @search.result(:distinct=>true).paginate(page: params[:page], per_page: 10) if params[:q].nil? @datum = Prospect.where(:id => 0).paginate(page: params[:page], per_page: 10) end @page = params[:page] || 0 @pids =

2022-05-15 18:22:36    分类:技术分享    ruby-on-rails   ruby   ruby-on-rails-3   ruby-on-rails-4   ransack

How to get Conditional Groups in Ransack?

问题 使用 Railscast 和 Ransack 演示代码,我可以像这样构建高级搜索 下拉“所有/任何”来自 <%= f.combinator_select %> 并且它有效,但我需要具有 (X AND Y) OR (A AND B) AND (M OR N) 等的条件组,我无法要得到。 我多次看到 Ransack Demo 示例,但它使用的是 Rails 5,我对其中的某些部分不是很清楚。 这是我在 Rails 4 中的代码,你能告诉我如何获得条件分组吗? 路线.rb resources :data do collection do get :search post :search, to: 'data#search' end end 数据.rb def search @search = Data.search(params[:q]) @datum = @search.result(:distinct=>true).paginate(page: params[:page], per_page: 10) if params[:q].nil? @datum = Prospect.where(:id => 0).paginate(page: params[:page], per_page: 10) end @page = params[:page] || 0 @pids =

2022-05-15 18:20:33    分类:技术分享    ruby-on-rails   ruby   ruby-on-rails-3   ruby-on-rails-4   ransack

Devise: NoMethod Error & user_signed_in

问题 我正在尝试使用 user_signed_in? 使用 devise 1.1.3 向我的 rails 3 应用程序添加登录区域,我得到一个 NoMethodErrorin Rules#index <% if user_signed_in? -%> <div id="user_login_box" style="float:right"> <%= current_user.email %> | <%= link_to 'My info', edit_user_registration_path %> | <%= link_to 'Sign out', destroy_user_session_path %> </div> <% end -%> 我不确定到底出了什么问题,但显然没有使用设计方法。 我也相当(阅读:真的)Rails 新手,之前没有使用过设计。 回答1 您为其生成设计的模型的名称是什么? 如果您将其称为其他名称而不是User ,您可能需要查看 http://groups.google.com/group/plataformatec-devise/msg/67f1eb5a571b6136 回答2 我有完全相同的问题。 undefined local variable or method 'edit_user_registration_path' 但是,我devise

2022-05-15 17:21:03    分类:技术分享    ruby-on-rails-3   login   devise

user , comment association not working, comment.user.email returns No method error?

问题 我有以下具有以下关联的模型:- class Comment < ActiveRecord::Base belongs_to :post belongs_to :user end class Post < ActiveRecord::Base belongs_to :user has_many :comments end class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me has_many :posts has_many :comments end 但是当我尝试访问评论的用户详细信息时,我没有得到方法错误:(。 浏览器中显示的错误如下:- undefined method `email' for nil:NilClass 1: <p> 2: <% @post.comments.each do |comment| %> 3: <b>Comment written by:</b> <%= comment.user.email

2022-05-15 12:58:04    分类:技术分享    ruby-on-rails   ruby-on-rails-3   associations

Rails 3 Override Destroy without Canceling callbacks, and triggering a ROLLBACK

问题 我想要的行为是,当对实例调用destroy时,该实例实际上不会被销毁,而只会被标记为已被销毁。 这需要渗透到任何模型关联中。 在我不想实际销毁的模型中,只是将它们标记为已删除,我有一个deactivated的字段。 据我所知,< v3.0.0 的做法是重写destroy_without_callbacks (这就是 ActsAsParanoid 的做法),但是该方法在 3.0.0 中不再存在,而且我对重写私有方法并不感到兴奋。 我也尝试实现回调,但根据文档,回调中所做的任何更改都是事务的一部分,因此也会回滚。 我的回调看起来像: after_destroy :mark_deactivated def mark_deactivated if self.respond_to?(:deactivated) then self.deactivated = DateTime.now self.save false else true end end 如何在不停止回调和回滚更改的情况下防止实际破坏我的记录? 回答1

2022-05-15 12:40:14    分类:技术分享    ruby-on-rails   activerecord   ruby-on-rails-3   before-filter

How can I use content_for to put something in :yield

问题 我在 ruby​​ 1.9.2,rails3。 所以我的网站有一些结构, 我想把菜单放在我的网页中间。 我正在做类似的事情(在 application.html.erb 文件中) blahblahblah <div id="menu"> <%= yield :menu %> <div> blahblhablah 我有一个文件 menu.html.erb,其中包含该站点的菜单结构。 如果我想使用 ./layout 文件夹中的文件作为该 yield :menu 的一部分,我该怎么办? 我想知道,如果我必须为每个控制器和每个函数使用 content_for ......顺便说一句,每个控制器的 menu.html.erb 都会有所不同,所以这就是我放弃它的原因。 总之,我只想在几乎所有地方都包含一个常见的共享 menu.html.erb。 回答1 你可以在你的视图中做这样的事情: <% content_for(:menu) do %> <%= render :partial => "/layouts/user_menu.html.erb" %> <% end %> 您可以尝试将其与controller.controller_name结合使用(不确定这是否适用于 Rails3)并自动为每个控制器加载不同的菜单。 回答2 您可能会考虑观看有关布局的 railscast,它简洁且有用。

2022-05-15 07:30:03    分类:技术分享    ruby-on-rails   ruby   ruby-on-rails-3

Rails/facebox_render - Ajax is not defined (facebox's always loading...)

问题 我试图用 facebox_render 和 rails 3 做一个简单的测试。 这是我的步骤: 1.) 安装 Jquery 1.4.2 (Jrails) 2.) 安装插件 rails plugin install git://github.com/ihower/facebox_render.git 3.)并添加了以下几行: 在我的 application.html.erb <head> <title><%= yield(:title) || "Untitled" %></title> <%= stylesheet_link_tag "reset", "application", "facebox" %> <%= javascript_include_tag :defaults, "facebox" %> <%= csrf_meta_tag %> <%= yield(:head) %> </head> 在我的 application_controller class ApplicationController < ActionController::Base include FaceboxRender end 当我试图在 facebox 中加载一些东西时,我只有加载器,什么都没有出现...... 例如,在我的家/index.html.erb <%= facebox_link

2022-05-15 06:30:28    分类:技术分享    ruby-on-rails   jquery   ruby-on-rails-3   facebox

Bootstrap Accordion Collapse not indexing divs correctly

问题 当尝试索引 div 以便手风琴按钮正确折叠时,它将我的 json 文件中每个类别中的每个第一个联系人索引为 0,而不是连续索引每个联系人,无论类别如何。 这是我的 erb 文件: <% @contacts.each do |category, hash| %> <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><%= category %></h3> </div> <div class="panel-body"> <ul class="list-group"> <% hash.each_with_index do |contact, index| %> <li class="list-group-item" style="border: none"> <button type="button" class="btn btn-info" data-toggle="collapse" data-parent="#accordion" data-target="#collapse<%= index %>"><%= contact['name'] %><%= index %><

2022-05-14 19:22:04    分类:技术分享    ruby-on-rails   twitter-bootstrap   ruby-on-rails-3   erb