Tag: 嵌套

Ruby on Rails中的嵌套URL,控制器和视图

我想要做的是将我的页面嵌套在Rails中,例如: www.mysite.com/fifa17/ps4 这样,一旦我在show.html.erb上 ,我就可以使用该路线在该控制台平台上专门为该游戏销售我的产品。 目前,我有一个带有has_many :games的Console模型和带有has_many :games的Game模型,但我无法使路由和视图工作。 我只有一个或两个控制器吗? 我有两个name ActiveRecords的Games和Consoles 。 我似乎能够调用其中一个操作(即Console.name ),但不能同时调用控制台名称和游戏名称。

如果值递归地包含字符串,则Ruby返回顶级散列键

我有下面的数据结构,我试图返回顶级键(lo,eth0或eth1),如果在任何地方递归和任意深度,它的值是给定的字符串。 然后在找到第一个字符串实例后终止搜索。 在包含任意数量的嵌套哈希和数组的哈希深处查找键/值对这类似于我想要做的但我无法将其映射到我自己的问题 h.find{ |k,v| break k if v.include? “number” } => “eth0” h.find{ |k,v| break k if v.include? “10.0.128.26” } => nil #Should return eth0 我想知道如何通常使用这样的嵌套数据结构,但我决定能够在特定的子哈希,我的情况下的地址中专门搜索。 h = \ {“lo”=> {“mtu”=>”65536”, “flags”=>[“LOOPBACK”, “UP”, “LOWER_UP”], “encapsulation”=>”Loopback”, “addresses”=> {“127.0.0.1″=> {“family”=>”inet”, “prefixlen”=>”8”, “netmask”=>”255.0.0.0”, “scope”=>”Node”}}, “state”=>”unknown”}, “eth0″=> {“type”=>”eth”, “number”=>”0”, “mtu”=>”1500”, “flags”=>[“BROADCAST”, “MULTICAST”, “UP”, “LOWER_UP”], “encapsulation”=>”Ethernet”, “addresses”=> {“00:0C:29:1A:64:6A”=>{“family”=>”lladdr”}, “10.0.128.26”=> […]

Factorygirl Admin Creation

我正在关注Michael Hartl的在线教程,在代码清单9.42中,我无法理解代码。 FactoryGirl.define do factory :user do sequence(:name) { |n| “Person #{n}” } sequence(:email) { |n| “person_#{n}@example.com”} password “foobar” password_confirmation “foobar” factory :admin do admin true end end end 然后在清单9.43中创建管理员 describe “as an admin user” do let(:admin) { FactoryGirl.create(:admin) } 我不明白的是如何创建一个没有任何代码的管理员 sequence(:name) { |n| “Person #{n}” } sequence(:email) { |n| “person_#{n}@example.com”} password “foobar” password_confirmation “foobar” […]

添加嵌套属性以设计用户模型

乍一看,这个问题似乎已经得到了回答,但不是我的情况(大部分都与质量分配问题和/或mongoid有关。)即使这里有很多有些相关的问题,我还是找不到答案。 。 所以基本上我在ruby on rails应用程序上使用devise gem进行用户身份validation,我想在用户模型中添加嵌套地址模型。 我也使用simple_form来生成表单视图。 我有一个用户模型: class User true end 这是地址模型: class Address < ActiveRecord::Base belongs_to :country belongs_to :state belongs_to :user attr_accessible :street1, :street2, :country_id, :state_id, :city, :postalCode end 这是用户控制器,我为了添加show动作来显示用户配置文件而进行了覆盖。 class Users::RegistrationsController after_sign_up_path_for(resource) else set_flash_message :notice, :”signed_up_but_#{resource.inactive_message}” if is_navigational_format? expire_session_data_after_sign_in! respond_with resource, :location => after_inactive_sign_up_path_for(resource) end else clean_up_passwords resource respond_with resource end end […]

在Ruby中,如何为嵌套哈希设置默认值?

我最近在寻找一种在Ruby中正确创建和使用嵌套哈希的方法。 我及时找到了Paul Morie的解决方案 ,他回答了自己的问题: hash = Hash.new { |h,k| h[k] = {} } hash = Hash.new { |h,k| h[k] = {} } 我立即去使用它,很高兴报告它有效。 但是,正如标题所说,我希望“辅助”,“内部”哈希默认返回0 。 我知道您可以在其构造函数(“ Hash.new(0) ”)或使用.default (“ hash.default(0) ”)中定义散列的默认返回值。 但是你如何用哈希中的哈希来做到这一点?

从Ruby中的哈希列表创建嵌套哈希

我有一组类别及其值存储为哈希列表: r = [{:A => :X}, {:A => :Y}, {:B => :X}, {:A => :X}, {:A => :Z}, {:A => :X}, {:A => :X}, {:B => :Z}, {:C => :X}, {:C => :Y}, {:B => :X}, {:C => :Y}, {:C => :Y}] 我想得到每个值的计数加上它的类别作为这样的哈希: {:A => {:X => 4, :Y => 1, :Z => 1}, :B […]

在Rails 3.x中,如何为引用父资源的嵌套资源设计视图?

假设我有一个嵌套资源,如Rails指南示例: http : //guides.rubyonrails.org/routing.html#nested-resources resources :magazines do resources :ads end 这会将对/ magazine / newsweek / ads的调用路由到AdsController#index。 它需要URL中的magazine_id …我应该如何创建基于用于Ads#index的模板的视图,还包括父资源的上下文? 例如,拥有广告的所有父资源都会包含这些广告的表格列表。 但我希望视图的顶部包含每个杂志的样板信息。 如果/ magazines / newsweek / ads直接转到通用的AdsController#index,如何让#index视图意识到需要包含从Magazine模型生成的样板? 如果其他模型与广告有关系(TelevisionShow has_many:ads),我希望AdsController #index对这些也有不同的反应。 编辑: 这就是我过去通过MagazinesController完成这些事情的方式。 假设我想要一个单独的杂志#show action …路线将是: resources :magazines resources :ads get “magazines/:id/ads”, :controller=>”companies”, :action=>”ads” 控制器将是: class MagazinesController < ApplicationController def show … end def ads … end […]

需要使用范围嵌套连接的ActiveRelation

我是铁杆新手。 爆炸了。 但查询API给我带来了一些麻烦。 我一直在缩放并且很快就做了很多事情,但这是我第一次花费数小时试图解决这个问题。 它不像我之前使用的任何东西 – 常规SQL,或Hibernate,或其他任何东西。 我的模型非常简单。 PrivateMessage有许多收件人 收件人有一个接收者(类用户) 收件人还有’is_read’和’is_deleted’字段 我的目标是构建一个查询,查找给定用户的所有未读和未删除的私人消息。 为实现这一目标,我们需要将“private_messages”加入“收件人”……然后将“收件人”加入“用户”。 这是相关的用户模型代码: has_many :sent_messages, :class_name => ‘PrivateMessage’, :foreign_key => ‘sender_id’ has_many :recipient_of_messages, :class_name => ‘Recipient’, :foreign_key => ‘receiver_id’ scope :by_id, lambda { |id| where(:id => id) } 我的收件人模型具有以下相关代码: belongs_to :receiver, :class_name => ‘User’, :foreign_key => “receiver_id” belongs_to :private_message scope :unread, where(:is_read => false).where(:is_deleted […]

通过在使用ActiveSupport :: Concernfunction时将“嵌套”模块包含为该类的实例方法,如何将方法添加到类中?

我正在使用Ruby 1.9.2和Ruby on Rails v3.2.2 gem。 在我之前关于如何在使用Ruby on Rails ActiveSupport :: Concernfunction时 “嵌套”模块的问题之后 ,我想了解我应该通过包含“嵌套”模块来添加到类中的方法,以便制作这个类的实例方法 。 也就是说,我有以下几点: class MyClass < ActiveRecord::Base include MyModuleA end module MyModuleA extend ActiveSupport::Concern included do include MyModuleB end end module MyModuleB extend ActiveSupport::Concern included do # def my_method # … # end end # def my_method # … # end end […]

在instance_eval / exec或module_eval / exec中的Module.nesting

当我试图回答这个问题时,我提出了这个问题。 以下是预期的行为: module A p Module.nesting end # => [A] 但以下内容: A.instance_eval{p Module.nesting} A.instance_exec{p Module.nesting} A.module_eval{p Module.nesting} A.module_exec{p Module.nesting} 全部归还[] 。 为什么这些不能像上面这样工作? 补充问题 穆太短表示一个有趣的观点。 如果这是正确的,那么Module.nesting将是依赖于文字上下文的方法和变量之一,如Method#source_location , __FILE__ 。 这种理解是否正确? 如果是这样,有人可以提供依赖于文字上下文的这些方法/变量的清单吗? 我认为这对参考有用。