小编Mid*_*ire的帖子

如何使用Rails 3范围过滤关联记录不存在的habtm连接表?

我有一个Authorhabtm模型:feed.使用Rails 3想要设置一个范围,查找没有关联提要的所有作者.

class Author < ActiveRecord::Base

    has_and_belongs_to_many :feeds
    scope :without_feed, joins(:feeds).where("authors_feeds.feed_id is null")

end
Run Code Online (Sandbox Code Playgroud)

......似乎没有用.感觉就像一件简单的事情.我在这里错过了什么?

activerecord scope join where ruby-on-rails-3

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

RubyMotion和指针

我是一个Objective-C菜鸟,已经搜索了高低不能找到答案:

在我的RubyMotion项目中,我有一个名为StatusGuage的UIView子类,它包含一个名为drawLinearGradient的方法,如下所示:

def drawLinearGradient(context, rect, startColor, endColor)
  colorspace = CGColorSpaceCreateDeviceRGB()
  locations = [0.0, 1.0]
  # colors = NSArray.arrayWithObjects(startColor, endColor, nil)
  # ptrColors = Pointer.new(:object, colors)
  colors = [startColor, endColor, nil]
  # CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef) colors, locations);
  CGGradientCreateWithColors(colorspace, colors, locations)
end
Run Code Online (Sandbox Code Playgroud)

我想知道如何调用CGGradientCreateWithColors.它显然需要一个(CFArrayRef)指针,但我无法弄清楚如何传入它.我尝试过的迭代之一被注释掉了.

这是错误消息:

2012-05-11 16:57:36.331 HughesNetMeter[34906:17903] 
*** Terminating app due to uncaught exception 'TypeError', 
  reason: 'status_guage.rb:43:in `drawLinearGradient:': expected 
  instance of Pointer, got `[0.0, 1.0]' (Array) (TypeError)
    from status_guage.rb:13:in `drawRect:'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

ruby ios rubymotion

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

映射与无关紧要的密钥访问

使用定义为原子或字符串的键在Map上匹配的最佳做法是什么?

%{"artist" => artist, "track" => track, "year" => year}
Run Code Online (Sandbox Code Playgroud)

VS

%{artist: artist, track: track, year: year}
Run Code Online (Sandbox Code Playgroud)

功能需要匹配两者:

def duplicate_post(%{"artist" => artist, "track" => track, "year" => year}) do
  ...
end
Run Code Online (Sandbox Code Playgroud)

elixir

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

确定Map是否具有某些键的正确方法

我有一个必需的键列表(required_keys):

["artist", "track", "year"]
Run Code Online (Sandbox Code Playgroud)

和地图(参数):

%{"track" => "bogus", "artist" => "someone"}
Run Code Online (Sandbox Code Playgroud)

我想确定是否paramsrequired_keys.我来自Ruby背景并且迭代似乎对Elixir来说是错误的,但不确定如何进行模式匹配来做到这一点.

elixir

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

从视图中访问连接或"分配"

我是凤凰新来的,来自RoR.看起来这些视图类似于Rails助手以及放置辅助函数的可能位置.

如果是这样,我们如何从视图中访问连接或连接的分配?

这是我的示例问题.

该应用程序显示所有用户的列表.但是我只想为当前登录的用户显示API令牌.所以我在想一个UserView适合在模板中做这样的事情的方法:

<b><%= first_name(@user) %></b> (api_token: <%= display_token(@user) %>)
Run Code Online (Sandbox Code Playgroud)

对于视图中的辅助方法,我需要能够执行以下操作:

def display_token(user) do
  case conn.assigns.current_user do
    user -> user.api_token
    nil -> ""
    _ -> "hidden"
  end
end
Run Code Online (Sandbox Code Playgroud)

任何见解都表示赞赏.

elixir phoenix-framework

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

Elixir - 修改匿名函数外部的值

首先,我绝对相信我会以错误的方式解决这个问题,因为我还在学习来自Ruby的Elixir ......

我从youtube获取搜索结果列表,并尝试提取视图最多的视频.

# html is the contents of the search results page
metas = html |> Floki.find(".yt-lockup-meta-info > li")

counter = -1
index = -1
high_views = 0

Enum.each(metas, fn(li) ->
  counter = counter + 1
  text = Floki.text(li)
  case String.split(text, " ") do
    [count, "views"] ->
      views = String.to_integer(String.replace(count, ",", ""))
      IO.puts(">>> #{counter} - #{to_string(views)} views")
      if views > high_views do
        high_views = views
        index = counter
      end
    [age, time_measurement, "ago"] ->
      nil
  end
end)
Run Code Online (Sandbox Code Playgroud)

metas是一个li …

elixir

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