小编Mel*_*emi的帖子

Rails:在多个嵌套的restful路由中嵌套相同的资源?

这很简单,但是在框架/语言之间切换回来让我自己怀疑.试图has_many :through在Rails中找出关系路由.

#User
has_many :reservations, :dependent => :destroy
has_many :events, :through => :reservations

#Reservation
belongs_to :user
belongs_to :event

#Event
has_many :reservations, :dependent => :destroy
has_many :attendees, through => :reservations, :source => :user
Run Code Online (Sandbox Code Playgroud)

我想要路线,从用户模型我可以快速建立/创建一个新的预订到特定的事件(反之亦然),但不知道如何创建它们.这看起来很奇怪:

resources :users do
  resources :reservations, only: [:new, :create, :destroy]
end

resources :events do
  resources :reservations, only: [:new, :create, :destroy]
end
Run Code Online (Sandbox Code Playgroud)

无论如何,只是寻找验证,或者可能是另一种方法来处理这个问题.理想情况下,在用户可以点击的事件旁边的页面上有一个链接,(通过ajax或页面重新加载)他们会进行"预订".

出于同样的原因,我需要路由来查看对给定事件有预订的每个用户.并且保留给定用户的每个事件.

routes ruby-on-rails has-many-through

4
推荐指数
1
解决办法
914
查看次数

在生产中配置Redis + Sidekiq

我正试图在Passenger/Rails生产环境中设置Redis + Sidekiq,并且遇到了一些困惑.

服务器上运行了许多小型应用程序.我确信这些应用程序中不止一个会利用Sidekiq提供的延迟处理.

我的第一个想法是使用Sidekiq中命名空间选项namespace为每个Rails应用程序创建一个.

但后来我注意到了一个databases 16设置redis.conf,我想知道它到底是做什么的.除了配置中的注释之外,我似乎无法找到它的文档:

# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
Run Code Online (Sandbox Code Playgroud)

那么,想知道16'数据库'的默认/示例是否意味着我可以将DB0用于一个应用程序而将DB1用于另一个应用程序?!?我不认为这个假设是正确的,但我找不到更多的信息,除了:

Redis Cluster不支持多个数据库,例如Redis的独立版本,只有数据库0,不允许SELECT.

希望有人可以告诉我如何在同一服务器上运行的各种Rails应用程序之间共享Sidekiq和Redis.

ruby-on-rails passenger redis sidekiq

4
推荐指数
1
解决办法
5911
查看次数

ActiveRecord :: RecordNotFound用于在'js:true'功能规范中创建的记录

尝试在简单的功能规范中使用javascript,但我甚至无法访问该页面.

describe "DiskFiles" do
  ...
  describe "update action", js: true do
    before(:each) do
      df = FactoryGirl.create(:disk_file)
      visit edit_disk_file_path(df)
    end

    it "should not show checkmark if no match" do
      expect(page).to_not have_content "?"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

  1) DiskFiles update action should not show checkmark if no match
     Failure/Error: Unable to find matching line from backtrace
     ActiveRecord::RecordNotFound:
       Couldn't find DiskFile with id=7598 [WHERE "disk_items"."type" IN ('DiskFile')]
     # ./app/controllers/disk_files_controller.rb:89:in `set_disk_file'
Run Code Online (Sandbox Code Playgroud)

这让我感到困惑,因为我刚刚创建了该记录,before(:each) 在删除时通过了js: true.

我错过了什么?

rspec ruby-on-rails capybara selenium-webdriver

4
推荐指数
1
解决办法
1120
查看次数

如何绕过ABPeoplePickerNavigationController缺少"添加"按钮?

我的应用程序需要将自定义类的实例与iPhone的AddressBook中的联系人记录相关联.当我呈现ABPeoplePickerNavigationController并允许用户选择现有联系人时,一切都很好.问题是,有没有明显的方式,让用户可以轻松地添加一个联系人记录,如果他们正在寻找一个不已经在他们的通讯录存在.

人们如何以一种简单直观的方式从ABPeoplePickerNavigationControllerABNewPersonViewController

iphone cocoa-touch addressbook

3
推荐指数
1
解决办法
3680
查看次数

Cocoa:Quartz,Core Graphics,Context vs View.天啊!

头开始疼.我想我的速度太快了......也许有人可以帮我看一下这些(不包括OpenGL ES)高级绘图库如何组合在一起 - 或者指向一些高级文档.例如,我看到"context"和"view"在某些情况下可以互换使用,但是一个视图有一个(只有一个?)上下文,而上下文没有视图?!?

没有什么太复杂,只需要帮助可视化他们的差异和他们的界限(何时使用一个而不是另一个).

cocoa cocoa-touch core-graphics quartz-graphics

3
推荐指数
1
解决办法
3115
查看次数

我的UIViewController对其中心属性"撒谎"

我问我的ViewController它的view.center属性并绘制一个新的UIView,它围绕着这个"中心"......我得到(160,250)作为回应.但是当新的UIView把它拉到中心以下时 ......所以我想知道是谁给了我这个信息以及它与它有什么关系?如果考虑状态栏的20px高度,这显然是视图中心与WINDOW的关系.这将推动视图中心向下10px.但是当绘制myView时,它似乎与ViewController.view而不是Window相关,因此它显示在中心下方20px ...

我希望ViewController能给我它的中心(160,230)所以我可以在它的中心绘制...我是否需要手动计算状态栏并每次从高处减去20?还是有一些我忽视的观看空间翻译?从ViewController.m:

- (void)setUpMyView {
// Create my view

MyView *aView = [[MyView alloc] init];
self.myView = aView;
[aView release];
myView.center = self.view.center;
NSLog(@"CenterX: %f, Y: %f", self.view.center.x, self.view.center.y);
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_2);
myView.transform = transform;

[self.view addSubview:myView];
Run Code Online (Sandbox Code Playgroud)

}

控制台:CenterX:160.000000,Y:250.000000

iphone cocoa-touch quartz-graphics uiviewcontroller uiview

3
推荐指数
1
解决办法
1738
查看次数

在iPhone上使用UITableView弹出模式

我需要弹出一个快速对话框,让用户从大约2-5项的列表中选择UITableView中的一个选项.对话框将是模态的,只占用屏幕的1/2左右.我在如何处理这个问题之间来回走动.我应该继承UIView并使它成为UITableViewDelegate&DataSource

我也更愿意在IB中列出这个观点.所以要显示我从我的视图控制器做这样的事情(假设我的视图控制器中有一个属性DialogView *myDialog;)

NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"DialogView" owner:myDialog options:nil];
myDialog = [nibViews objectAtIndex:0];
[self.view addSubview:myDialog];
Run Code Online (Sandbox Code Playgroud)

问题是我正在尝试传递所有者:myDialog是nil,因为它尚未实例化...我可以传递所有者:self但这将使我的视图控制器,File's Owner而不是如何在IB中连接该对话视图.

所以这让我觉得这个对话想要成为另一个全面的UIViewController...但是,从我所读过的所有内容中,每个屏幕应该只有一个UIViewController,所以这让我感到困惑,因为我可以从viewDidLoad视图中获益等等控制器...

有人可以帮我解决这个问题吗?

iphone cocoa-touch uitableview uiviewcontroller uiview

3
推荐指数
1
解决办法
2万
查看次数

Rails错误:未初始化的常量ApplicationController :: Authentication

通过clarkware的iphone-rails-tutorial工作,并尝试构建和运行包含的最终rails代码,但每当我尝试访问localhost时,我在服务器的控制台中都会收到此错误:3000 /

ActionController::RoutingError (uninitialized constant ApplicationController::Authentication):
  app/controllers/application_controller.rb:5:in `<class:ApplicationController>'
  app/controllers/application_controller.rb:1:in `<top (required)>'
  app/controllers/goals_controller.rb:2:in `<top (required)>'

Rendered /Users/joeuser/.rvm/gems/ruby-1.9.2-p0@rails3/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.6ms)
Run Code Online (Sandbox Code Playgroud)

以前包含的示例代码的"里程碑"运行得很好.只有最后一个抛出错误......

这是什么意思?我没有想到的猜测是,有一种类型的认证宝石缺失,但我无法弄清楚哪一个.除了默认的rails&sqlite3-ruby之外,Gemfile中没有列出任何内容......并且文档中没有提及任何身份验证框架.

任何人都明白这个错误或熟悉教程,知道发生了什么?

我似乎无法找到与本教程相关的论坛,所以我想我会在这里查询.如果你知道一个,请指导我参加活动论坛.

authentication ruby-on-rails restful-authentication

3
推荐指数
1
解决办法
6005
查看次数

如何向发布Capistrano任务的工作站发送消息?

如果我cap deploy从工作站执行,如何在配方运行时指定要在工作站的控制台中显示的自定义反馈?

这让我感到困惑,因为Capistrano在部署机器(或服务器)上运行其"任务",因此run 'echo "this is my message"'只会出现在服务器的控制台中.

capistrano ruby-on-rails

3
推荐指数
1
解决办法
5015
查看次数

Rails 3:转义字符(\)出现在JSON字符串的一部分中

任何人都知道为什么我的一些json元素被反斜杠(\)转义而其他人没有?

{"first":"John","last":"Smith","dogs":"[{\"name\":\"Rex\",\"breed\":\"Lab\"},{\"name\":\"Spot\",\"breed\":\"Dalmation\"},{\"name\":\"Fido\",\"breed\":\"Terrier\"}]"}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望他们中没有人逃脱......

这是通过覆盖as_json两个模型生成的.人has_many狗.

#models/person.rb
class Person < ActiveRecord::Base
  has_many :dogs

  def as_json(options={}) 
     {
       :first => first,
       :last => last,
       :dogs => dogs.to_json
     }
   end
end

#models/dog.rb
class Dog < ActiveRecord::Base
  belongs_to :people

  def as_json(options={})
    {
      :name => name, 
      :breed => breed
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

serialization json ruby-on-rails object-graph

3
推荐指数
2
解决办法
1万
查看次数