Tag: 模型 视图 控制器

嵌套模型validation – 不显示错误

关于这一点有很多问题,但它们似乎都没有帮助。 是的,我看过这个导演 。 我有一个有很多书的作者,如下: 作者: class Author < ActiveRecord::Base attr_accessible :name has_many :books, dependent: :destroy accepts_nested_attributes_for :books, allow_destroy: true validates :name, presence: true validates :name, length: { minimum: 3 } end 书: class Book < ActiveRecord::Base attr_accessible :name, :year belongs_to :author validates :name, :year, presence: true validates :year, numericality: { only_integer: true, less_than_or_equal_to: Time.now.year } […]

如何查看infinit子条目的导航?

我有一个名为Category的简单模型。 该模型有三个字段: name:string , parent_id:integer和cause id ! parent_id是一个自引用关联: has_many :children, :class_name => ‘Category’, :foreign_key => ‘parent_id’ belongs_to :parent, :class_name => ‘Category’, :foreign_key => ‘parent_id’ 所以每个类别都可以有子类别,并且开启和开启,……这不是数据库中的问题,但是当涉及到视图时我会感到困惑! 我不知道如何循环通过每个类别的children和那些儿童,…

单击#new&#edit时如何停止NoMethodError?

我很难弄清楚如何将多个控制器的逻辑合并到侧边栏中。 例如,我想在侧边栏中有一个部分,它使用@habits逻辑和一个使用来自goals_controller的@unaccomplished_goals逻辑的部分。 对于这个问题,我们只关注@unaccomplished_goals 。 在应用程序的侧边栏中正确显示,它来自goals_controller #index @top_3_goals = @unaccomplished_goals.top_3 但是如果我点击链接目标/ new或目标/ 1 /编辑我得到可怕的: undefined method each for nil:NilClass ! 这是一个视图细分: 我在views/layouts/application.html.erb使用来抓取views/sidebar/_sidebar.html.erb ,以便使用来抓住views/goals/_upcoming.html.erb 意见/目标/ _upcoming.html.erb 视图/侧边栏/ _sidebar.html.erb Upcoming 目标控制器 def index if params[:tag] @goals = Goal.tagged_with(params[:tag]) else @goals = Goal.all.order(“deadline”) @accomplished_goals = current_user.goals.accomplished @unaccomplished_goals = current_user.goals.unaccomplished @top_3_goals = @unaccomplished_goals.top_3 end end 目标模型 class Goal { where(accomplished: […]

根据操作的ID渲染rails部分

我正在建立一个小型电子商务网站,销售各种男装和女装。 我想基于用户所在的分类法来呈现部分内容。例如,如果用户位于mysite.com/t/women/pants,我想呈现_women.html.erb,或者,如果用户是在mysite.com/t/men/shirts我想呈现_men.html.erb。 我有一个分类模型,包含多个分类,而Taxon模型有多个产品。 在taxons_controller.rb我有: def show @taxon = Taxon.find_by_permalink(params[:id]) return unless @taxon @taxonomy = Spree::Taxonomy.all @taxon_title = Spree::Taxon.all @searcher = Spree::Config.searcher_class.new(params.merge(:taxon => @taxon.id)) @searcher.current_user = try_spree_current_user @searcher.current_currency = current_currency @products = @searcher.retrieve_products respond_with(@taxon) end 在分类单位#show我有:(我知道这是错的) 当我访问mysite.com/t/women/long-sleeve时,rails调试器显示: controller: spree/taxons action: show id: women/long-sleeve 如何在内部访问动作的id,以便在控制器/视图中我可以执行以下操作: ‘如果id等于’女’渲染“spree / shared /#{title.name.downcase}”’ title是分类标准的名称? 我想我需要在控制器的演出动作中找到(params [:something],但我对params有点不清楚。 * * * @ beck03076这是一个很棒的技巧。 […]

使用动态变量渲染部分rails

我试图根据用户所在的分类单元渲染部分内容。 在我的application.html.erb布局中,我有以下代码行: 在taxons控制器中,在show方法中,我有: @taxon_id = params[:id].split(‘/’).first 在分类单位#show我有: 当我运行它时,我得到一个SyntaxError。 但是在分类中#show如果我只是输入: 没有’= true’然后页面呈现,输出’@enable_women’。 所以我知道它正在获取正确的变量,我只需要将该变量设置为true。 我错过了什么? 非常感谢。

如何在rails中正确查看?

我在控制器中使用此选项为每个模型选择了另一个表中的数据: def modelv @model = Model.find(:all, :conditions => { :MOD_MFA_ID => params[:man]}) @ct1 = CountryDesignation.all(:conditions => { :CDS_ID => @model.map(&:MOD_CDS_ID)}) @ct = @ct1.uniq{|hh| hh.CDS_ID} @destext = DesText.find(:all, :conditions => { :TEX_ID => @ct.map(&:CDS_TEX_ID)}) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @model } end end 抱歉脏代码。 和我的看法 %table %tr %th Mfa id […]

将对象从视图传递到控制器

有没有办法将对象(特别是视图中使用的form_builder对象)传递给控制器​​中的操作? 我正在使用link_to_remote并希望更新控制器中的变量,然后通过render:update块将新的嵌套表单元素添加到我的表单中。 如果我将它作为参数传递,它将转换为字符串,我似乎无法成功地将本地哈希传递给控制器​​。

如何在侧边栏中停止双重渲染?

代码是双重渲染,如下所示: 什么时候应该只列出一次: Ran 1 miles Apr Journal 1 days Apr 视图/布局/ _stats.html.erb <div class="”> <span class="”> application_controller def set_stats @averaged_quantifieds = current_user.quantifieds.averaged if current_user @instance_quantifieds = current_user.quantifieds.instance if current_user end 结果是Quantifieds的nested_attribute。 quantifieds_controller class QuantifiedsController < ApplicationController before_action :set_quantified, only: [:show, :edit, :update, :destroy] before_action :logged_in_user, only: [:create, :destroy] def index if params[:tag] @quantifieds = Quantified.tagged_with(params[:tag]) […]

Rails – 可扩展的计算模型

我目前在我的rails应用程序中有一个计算结构,它具有模型metric , operand和operation_type 。 目前, metric模型具有许多operands ,并且可以基于operation_type (例如,sum,multiply等)执行计算,并且每个operand被定义为向右或向左(即,如果操作是除法,则分子和可以确定分母)。 目前,操作数始终是某个模型的属性,例如@customer.sales.selling_price.sum 。 为了使这种可伸缩性,需要允许操作数是某种属性,或者是先前操作的结果,即操作数可以是度量。 我已经包含了我的模型当前外观的图表: 任何人都可以帮助我以最优雅的方式允许操作数成为实际操作数或其他指标吗? 谢谢! 编辑:似乎基于迄今为止唯一的答案,也许多态关联是这样做的方式,但答案是如此简短我不知道如何以这种方式使用它们 – 任何人都可以详细说明吗? 编辑2:好的,我想我已经到了某个地方 – 基本上我目前有一个度量标准,其中包含多个操作数,以及一个操作数has_many指标。 我需要一个多态自联接,其中度量也可以有许多度量 – 我是否需要将其称为其他东西,也许是calculate_metrics,以便度量模型可以自己使用? 这将使我的情况是指标具有多个操作数,而指标具有许多calculated_metrics。 编辑3:我已经更新了我的模型如下,并且对于这是否是解决问题的好方法有任何批评。 您将注意到我添加了一个名为calculated_metric的模型,该模型本质上是其他度量的持有者 – 即可以使用两个操作数或操作数和calculated_metric的组合来计算度量。 编辑4:Bounty为任何可以向我展示详细的轨道方式的人添加了。 编辑5:赏金仍在争夺中; 虽然下面提供的答案是详细的,但我正在寻找最好的方法,而不是替代方法来处理这个问题(即请让我知道解决问题的最佳方法,而不是寻找方法来回避它,因为我需要这个function)。 谢谢! 编辑6:对此没有太多关注 – 是否会增加赏金帮助,或者这个问题不是跑步者?

Rails 5 – 从父控制器上的编辑路径中排除特定实例

我在我的Rails 5应用程序中有用户,提案和潜力的模型。 用户创建提案,然后他们自己和其他人可以创建评论。 模型之间的关联是: 用户 has_many :proposals, dependent: :destroy has_many :potentials 提案 belongs_to :user has_many :potentials, inverse_of: :proposal accepts_nested_attributes_for :potentials, reject_if: :all_blank, allow_destroy: true 潜在 belongs_to :proposal, inverse_of: :potentials belongs_to :user 在我的路线文件中,我有两个潜在的资源。 我不确定我是否已经离开了滑雪道 – 我无法找到一个如何做到这一点的例子。 我有两个: resources :potentials 以及: resources :proposals do resources :potentials 我这样做的原因是,当用户创建提案时,他们可以使用嵌套字段表单来添加潜在属性。 当另一个用户看到该提案时,他们会获得一个新表单来添加:潜在的属性集(他们不会通过提案表单执行此操作)。 在我的潜力视图文件夹中,我有新的渲染forms的视图以及我的提案表单中包含的potential_fields_for(只有提案创建者可以使用嵌套字段)。 新/渲染表单有: f 提案表格包括: 在我的提案控制器中,我正试图找到一种方法来排除第三方创建:来自提案表单中显示的字段的潜力。 def edit @proposal.potentials_build unless […]