小编Sco*_*ott的帖子

rails OS无法在OSX 10.6.5上使用rvm&ruby 1.9.2-p0启动mysql2

启动rails服务器时出现以下错误:

$ rails server
/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `require':     dlopen(/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError) 
Referenced from: /Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2- 0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-    
0.2.6/lib/mysql2/mysql2.bundle
Run Code Online (Sandbox Code Playgroud)

在rvm使用ruby-1.9.2-p0命令后,我用以下命令安装了mysql2:

$ gem install mysql2 -- --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions.  This could take a while...
Successfully installed mysql2-0.2.6
1 gem installed
Installing ri documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known
Run Code Online (Sandbox Code Playgroud)

我的Gemfile以及database.yml文件中都有mysql2,bundle install就可以了

$ bundle show mysql2
/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6
Run Code Online (Sandbox Code Playgroud)

我理解rails服务器错误是由于它不知道OSX上的mysql_config位置,但是在gem …

macos rvm mysql2

37
推荐指数
4
解决办法
2万
查看次数

通过嵌套命名空间引用具有belongs_to关系的模型中的属性

好的,所以我想我已经理解了关系规范如何在rails中工作但是我已经在这一天中苦苦挣扎了一天.

在某些情况下,我有两个模型汽车和型号名称(例如Impala,Charger等),其中Cars是模型名称的实例,而模型名称实际上只不过是模型名称和其他一些模型级别属性的查找表.模型名称控制器嵌套在管理员命名空间内,因为只有管理员可以使用CRUD模型名称.最终用户可以将汽车实例添加到Cars模型中.

所以,在routes.rb我有:

  resources :cars

  namespace :admin do resources :model_names end
Run Code Online (Sandbox Code Playgroud)

模型定义为:

class Admin::ModelName < ActiveRecord::Base
end
class Car < ActiveRecord::Base
  belongs_to :admin_model_name
end
Run Code Online (Sandbox Code Playgroud)

迁移是:

class CreateCars < ActiveRecord::Migration
  def self.up
    create_table :cars do |t|
      t.string :chassis_number
      t.string :description
      t.references :admin_model_name
      t.timestamps
   end
end

class CreateAdminModelNames < ActiveRecord::Migration
  def self.up
    create_table :admin_model_names do |t|
      t.string :model
      t.integer :sort_index
      #...additional attributes removed
      t.timestamps
    end
Run Code Online (Sandbox Code Playgroud)

ModelName的管理员CRUD都很棒.问题出在汽车视图中.我想我应该引用一个特定的汽车模型名称,如:

<%= @car.admin_model_names.Model =>
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

undefined method `admin_model_names' for #<Car:0x000001040e2478>
Run Code Online (Sandbox Code Playgroud)

我在ModelNames模型上尝试过attr_accessible,但无济于事.正确引用了基础数据.我在汽车和用户之间也有HABTMT关系,所有这些关系都可以很好地引用来自不同实体视图的彼此属性.但是还没能让它发挥作用.是否由于嵌套资源和管理控制继承?

我发现唯一有效的参考方法是:

 <%= Admin::ModelName.find(@car.admin_model_name_id).model %>
Run Code Online (Sandbox Code Playgroud)

但这实际上似乎是太多的代码(以及查找费用)来获得该属性.是否有Rails方式?

提前致谢. …

belongs-to ruby-on-rails-3

7
推荐指数
2
解决办法
6956
查看次数

是否有 Firestore REST API RunQuery 端点教程的好示例?

我已成功让 Vapor 应用程序从 Firestore 读取和写入集合和文档,但我现在有一个需要查询的用例。我已遵循 Firestore 查询的文档,并在我的 iOS 客户端中成功使用它们,该客户端使用 iOS Firestore 库而不是 REST API,但在服务器上我一直无法弄清楚如何执行相同的操作询问。Firestore 文档在这方面似乎不完整。

Google 的这个 API 端点工具确实允许我提交查询,但关于如何格式化 RunQuery 端点的请求正文中的字段的文档似乎很少。

https://developers.google.com/apis-explorer/#search/firestore/firestore/v1/firestore.projects.databases.documents.runQuery

有没有人有经验可以分享如何格式化请求正文以使用 REST API 创建格式良好的 Firestore 查询?

FWIW,这篇 Medium 文章对于 REST API 入门来说非常棒,但在更丰富的 Firestore 请求方面就停止了。 https://medium.com/rocket-fuel/getting-started-with-firebase-for-server-side-swift-93c11098702a

vapor google-cloud-firestore

6
推荐指数
1
解决办法
578
查看次数

如何限制 macOS 窗口管理恢复特定窗口?

我有一个应用程序,它有几个窗口定义为窗口组,其结构符合主场景中的应用程序:

WindowGroup("StandingsView") {
    
    StandingsView()
        .environmentObject(appServices)
}
.handlesExternalEvents(matching: Set(arrayLiteral: "StandingsView"))
Run Code Online (Sandbox Code Playgroud)

appServices 需要一些时间来配置,所以我不想在启动时自动恢复窗口。我在用户选择有效、服务完全配置并且用户按下“开始”SwiftUI 按钮时创建窗口:

if let standingsURL = URL(string: "raceStratLiteApp://StandingsView") {
    NSWorkspace.shared.open(standingsURL)
}
Run Code Online (Sandbox Code Playgroud)

我尝试关闭 appDelegate 的 applicationShouldTerminate() 中的窗口。我还尝试在 applicationShouldTerminate 中将 isRestorable 设置为 false:

func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply {
    
    for window in NSApplication.shared.windows {
        window.isRestorable = false
    }
    return .terminateNow
}
Run Code Online (Sandbox Code Playgroud)

还有其他方法不恢复窗口吗?或者更好的是,能够以编程方式将其恢复为之前的大小等,但仅在用户指示“启动”时启动

TIA

macos nswindowrestoration swiftui swiftui-windowgroup

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