小编fl0*_*00r的帖子

模型的关系

如何获得模型的所有关系.IE,我有User型号:

class User < AR::Base
  has_many :messages, :foreign_key => 'author'
  has_many :posts
  belongs_to :role
end
Run Code Online (Sandbox Code Playgroud)

那么我怎么知道User模型有哪些关系呢?和foreign_keys如果被呈现.

ruby ruby-on-rails

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

模型关联返回的数组不是数组?

我们有一个模型关联,看起来像这样:

class Example < ActiveRecord::Base
  has_many :others, :order => 'others.rank'
end
Run Code Online (Sandbox Code Playgroud)

rank列是整数类型.虽然我们发现其他模型之间的其他has_many关联存在同样的问题,但这些特定模型的细节并不重要.

我们还添加了Enumerable模块:

module Enumerable
  def method_missing(name)
    super unless name.to_s[0..7] == 'collect_'
    method = name.to_s[8..-1]
    collect{|element| element.send(method)}
  end
end
Run Code Online (Sandbox Code Playgroud)

这会添加一个collect_id方法,我们可以使用它从ActiveRecord对象数组中获取记录ID数组.

因此,如果我们使用普通的ActiveRecord find:all,我们得到一个很好的数组,然后我们可以使用collect_id,但如果我们使用Example.others.collect_id,我们得到

NoMethodError: undefined method `collect_id' for #<Class:0x2aaaac0060a0>
Run Code Online (Sandbox Code Playgroud)

Example.others.class返回"数组",所以它是说谎还是混淆?

到目前为止,我们的解决方案一直是这样使用它:

Example.others.to_a.collect_id 
Run Code Online (Sandbox Code Playgroud)

这有效,但这似乎有点奇怪.你为什么要那样做?

我们使用的是Ruby 1.8.7和Rails 2.3.4

ruby ruby-on-rails associations

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

为什么Rails 3中的AJAX如此难?或者,我做错了什么?

没有一个教程我似乎做了我想要做的事情.很简单,我希望用户能够向控制器提交POST请求("喜欢"视频)并让控制器使用JSON对象进行响应.任何帮助,将不胜感激.

谢谢

编辑因为SO正在弄乱格式化,这里也是我的代码的要点:https: //gist.github.com/813503

这是我的控制器:

class LikesController < ApplicationController

  before_filter :get_ids

  respond_to :json, :js

  def videolink
    results = {}

    # check to see if the user has liked this videolink before
    if current_user
      liked = Like.video?(current_user, @vid_id)

      results["status"] = "OK"      
      results["liked"] = liked
    else
      results["status"] = "Error"
      results["message"] = "User not logged in"
    end

    respond_with( results.to_json ) 
  end


  def update
    results = {}

    if current_user
      results["status"] = "OK"  
    else
      results["status"] = "Error"
      results["message"] = "User not logged …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails

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

动态显示控制器>动作标题

我需要动态显示标题,如下面的样式/顺序控制器>动作.

例如:

class Office::MeetingController < ApplicationController
    def today
    ...
    end
    def yesterday
    ...
    end
end

我想动态显示标题(即动态地将标题放在页面上),比如

今天页面标题=>办公室>会议>今天
昨天页面标题=>办公室>会议>昨天

我觉得懒得使用标题标签.;)

提前致谢

ruby ruby-on-rails

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

在另一个模型的创建视图中设置一个模型的属性

我有一个has_one配置文件的用户模型,该配置文件属于该用户.该配置文件有一个type用于单表继承的列,可以是"artist"或"listener".我希望用户在新用户视图中注册时设置此项.因此我有以下形式的代码:

<%= f.fields_for :profile do |t| %>
 <div class ="field">
    <%= t.label :type, "Are you an artist or listener?" %><br />
    <%= t.radio_button :type "artist" %>
    <%= t.radio_button :type "listener" %>
  </div>
<% end %>   
Run Code Online (Sandbox Code Playgroud)

这在我的用户模型中:

accepts_nested_attributes_for :profile
Run Code Online (Sandbox Code Playgroud)

但我得到他的错误:

ArgumentError in Videos#index

Showing /rubyprograms/dreamstill/app/views/videos/_video.html.erb where line #3 raised:

No association found for name `profile'. Has it been defined yet?
Run Code Online (Sandbox Code Playgroud)

为什么会这样,我该如何解决?

另外我很困惑为什么错误会在我的视频部分中引出第3行,这根本就没有提到profile......

更新:

这是整个表格:

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
  <div id="errorExplanation">
    <h2><%= pluralize(@user.errors.count, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails nested-attributes ruby-on-rails-3

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

Actionmailer如何运作?

如果我需要给2个人发一封信,我该怎么办呢?我在网上找到了文档,但是我不理解它们,你能告诉我并用简单的语言解释我吗?

ruby ruby-on-rails actionmailer

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

与透明窗帘的退色背景

我认为这是一个非常受欢迎的问题.

我正在寻找黑色不透明层的crossbrowser CSS解决方案.这将隐藏其下的所有内容.

我的例子:http://jsfiddle.net/pb9jv/.但它不是crossbrowser.(IE 6+是我屁股的痛苦).

html css

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

一个大的Rails应用程序与单独的应用程序

我正在做一个大项目.现在我们需要添加新功能:scheduler管理.这不是应用程序的主要任务,但它是相当复杂的一部分.

将其作为单独的应用程序提取是否是个好主意?

它将共享一些数据(用户和一些其他个性),它将使用相同的数据库.

我想要做的主要原因是简化主要应用程序.

我明白,这可能是一个太宽泛的问题.但也许您可以分享您开发此类应用程序的经验,也许我可以阅读任何文章和全球最佳实践.

ruby ruby-on-rails ruby-on-rails-3

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

Rails3,未知密钥:client_id,在belongs_to关联上

我一直在寻找一段时间,但谷歌并没有真正帮助我.ArgumentError Unknown key(s): client_id出现在ProjectsController中:

# projects_controller.rb

class Management::ProjectsController < Management::ManagementController
  def index
    @projects = Project.find( :client_id => current_user.client )
  end
end
Run Code Online (Sandbox Code Playgroud)

这是项目模型:

# project.rb

class Project < ActiveRecord::Base
  belongs_to :client
end
Run Code Online (Sandbox Code Playgroud)

这是客户端模型:

# client.rb

class Client < ActiveRecord::Base
  has_many :projects
end
Run Code Online (Sandbox Code Playgroud)

最后,迁移:

# 20110404155917_create_projects.rb

class CreateProjects < ActiveRecord::Migration
  def self.up
    create_table :projects do |t|
      t.string :name
      t.datetime :date
      t.text :description
      t.integer :client_id
      t.timestamps
    end
  end

  def self.down
    drop_table :projects
  end
end
Run Code Online (Sandbox Code Playgroud)

应该可以吧?

看不到我在这里失踪的东西..

有人有建议吗?

谢谢!

ruby-on-rails associations

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

SQL Server查询结果到文件

如何从sqsh控制台将查询结果保存到文件中?

谷歌正在谈论一些我不想使用的gui工具.

PS:Linux

sql sql-server csv sqsh

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

使用ActiveRecord使用OR子句进行查询的"Rails方式"是什么?

我正在使用Rails 3和MySQL数据库,我需要以编程方式创建这样的查询:

select * from table where category_name like '%category_name_1%' 
OR category_name like '%category_name_2%'
(...snip...)
OR category_name like '%category_name_n%'
Run Code Online (Sandbox Code Playgroud)

鉴于表格大小和项目范围(我认为最多500行),我觉得使用像思考sphinx这样的东西会有点过分.我知道我可以通过直接编写查询字符串来完成此操作,但想知道是否有ActiveRecord方法来执行此操作.在官方指南中没有提到这一点,我现在谷歌搜索了很长一段时间,只是空手而归:(

另外,有没有理由(可能是Rails的原因?)不包含OR子句?

谢谢!

ruby mysql activerecord ruby-on-rails ruby-on-rails-3.2

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

Ruby重写<<方法

我有 class A

class A
  attr_reader :b
  def b=param
    @b = param
    print "success"
  end
end

>> a = A.new
>> a.b = "hello world!"
#> "success"
#> "hello world!"
>> a.b << " and goodbye!"
#> "helo world! and goodbye!"
Run Code Online (Sandbox Code Playgroud)

我的"成功"在哪里?:)

我想打印'成功'每次我的变量都改变了.

我不能写

def b<<param
  @b << param
  print "success"
end
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
1
解决办法
654
查看次数