小编Bit*_*ise的帖子

link_to中的Ruby三元组

我的基本问题是如何使用三元组将其转换为一行代码?

 <% if tip_off %>
  <%= link_to "Dead Man's Snitch", [:homepage], class: "topbar-brand-tip-off", rel: "home" %>
<% else %>
  <%= link_to "Dead Man's Snitch", [:homepage], class: "topbar-brand", rel: "home" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我正在做的就是在特定条件下更改类名.

ruby refactoring ruby-on-rails erb

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

将参数传递给 Rails 路径助手

我正在尝试将参数传递到我的 Rails 路径助手中,但我当前的尝试不起作用。这是我现在正在做的事情:

<%= link_to "Pause Assignment", pause_account_complete_assignment_index_path(@assignment.current_timekeeper) %>
Run Code Online (Sandbox Code Playgroud)

控制器

def pause
  binding.pry
end 
Run Code Online (Sandbox Code Playgroud)

在控制器中,我正在寻找传入的参数。但没有找到它们。这是返回的内容。

<ActionController::Parameters {"controller"=>"accounts/complete_assignment", "action"=>"pause"} permitted: false>
Run Code Online (Sandbox Code Playgroud)

路线

resources :complete_assignment, only: [:create, :destroy] do
  get 'pause', on: :collection
end
Run Code Online (Sandbox Code Playgroud)

这可能与我在集合上使用的事实有关?

但是,基本上我如何传递@assigment.current_timkeeper控制器?

ruby ruby-on-rails

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

使用jQuery进行字符串插值

我试图将变量的值传递给jQuery选择器,但我似乎无法正确.这是我正在使用的:

jQuery的

var state = $("<%= @state %>").selector;
Run Code Online (Sandbox Code Playgroud)

捕获此值 - > "pending"

我试图将该值传递给此选择器:

jQuery的

$(".snitches-index-header + .tags-column .#{state}_count")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试将字符串传递给jQuery选择器.但这并不像我预期的那样有效.我做错了什么,以便选择器读取:

$(".snitches-index-header + .tags-column .pending_count")
Run Code Online (Sandbox Code Playgroud)

但显然使用变量状态而不是pending

javascript jquery

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

查询记录中的ID - Phoenix和Elixir

我来自铁轨背景(像许多Elixir人一样).我目前的问题是我正在尝试查询特定记录.对于我来说,这对我来说毫无疑问,但我似乎无法在凤凰城找到它.这是我正在尝试做的事情:

我有一个Locationhas_many表,MonitorsMonitor有一个不是ID的数字.这些号码只对一个位置是唯一的,所以我不能简单地找到只有监视器编号的特定监视器.所以我必须将它范围扩展到它所属的位置.在Rails中我会做这样的事情:

location = Location.find(params[:location_id])

monitor = location.monitors.find_by(number: params[:monitor_number])
Run Code Online (Sandbox Code Playgroud)

使用Rails活动记录很容易,但我怎样才能与凤凰城一起做?这是我目前的尝试没有按照我的预期运作.

monitor_query = from m in Monitor,
  where: m.location_id == ^upload_params["location_id"],
  where: m.number == ^upload_params["monitor_number"],
  select: m.id

monitor = Repo.all(monitor_query)
Run Code Online (Sandbox Code Playgroud)

这是错误的ID,我不确定它在做什么.任何人都可以告诉我这个吗?

ruby-on-rails elixir ecto phoenix-framework

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

从命令行调用 Ruby 方法

我在名为 的文件中有一个程序project1.rb。在这个文件中,我有一个名为 的方法check_num(n)。我只是想从命令行或 IRB 调用该方法,但我不知道如何调用,并且似乎找不到解释如何调用的文档。

这是我尝试过的:

$ ruby project1.rb check_num(100)

#=> -bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

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

ruby command-line

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

了解rails委托方法

我正在尝试了解Rails开箱即用的委托方法.这就是我想要做的.所以,我有Accounts那么多Tasks.所以我试图让帐户的任务计数,这是我目前正在做的事情:

def total_tasks
  tasks.count
end
Run Code Online (Sandbox Code Playgroud)

很标准的东西.但我正在尝试将此方法移动到委托方法.我试过这个,但它不起作用

 delegate :count, to: :task, prefix: "total"
Run Code Online (Sandbox Code Playgroud)

这没用,我真的没想到会这样.有没有办法可以做到这一点?

ruby ruby-on-rails

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

查询 has_many 关联 - Ecto、Phoenix

我正在尝试查询属于我的系统中特定用户的所有联赛。

数据设置如下所示:

用户模型:

has_many :users_leagues, Statcasters.UsersLeagues
has_many :leagues, through: [:users_leagues, :league]
Run Code Online (Sandbox Code Playgroud)

所以你可以看到,我有一个 has_many through 关联用户和联赛。

我正在尝试获取用户附加的所有联赛的列表。

在 Rails 中,它看起来像这样:user.leagues它将加载所有附加了当前用户 ID 的联赛。

我如何使用 Ecto、Elixir 和 Phoenix 做到这一点?

elixir ecto phoenix-framework

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

如果匹配,则使用 E​​lixir 比较两个列表返回 true

我有这个功能:我正在尝试与记录列表进行比较,以查看两者之间是否匹配。

def current_user_has_team?(user, teams) do
  user = user |> Repo.preload(:teams)

  Enum.member?(user.teams, teams)
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为当只有一条记录并且它们匹配时它返回 false。

我怎么说:“看看这个记录列表,这些记录是否与另一个列表匹配?” 在长生不老药?

在 Ruby 中是这样的:

list_1 = [1,2,3]
list_2 = [3,4,5]

(list_1 & list_2).any? => true
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

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

构建自定义查询和嵌套关联定义

我正在尝试将has_many关联预加载到传入的结构和传递的结构关联的has_many关联.

以下是我现在正在使用的内容:

project =
 Repo.get!(Project, id)
 |> Repo.preload([rows: {query, [images: from i in Image, order_by: i.index]}])
Run Code Online (Sandbox Code Playgroud)

但是这会返回此错误:

This error may happen when you forget a comma in a list or other container:

    [a, b c, d]

Elixir cannot compile otherwise. Syntax error before: ','
Run Code Online (Sandbox Code Playgroud)

这虽然工作得很好:

project =
  Repo.get!(Project, id)
  |> Repo.preload([rows: {query, [:images]}])
Run Code Online (Sandbox Code Playgroud)

但在这个查询中,我无法按照我想要的图像进行排序.任何人都可以帮我吗?

elixir ecto phoenix-framework

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

从字符串中删除数值

如果给出这个字符串'Cool1, let's g3et to work',我怎么能返回这个值Cool, let's get to work?与Elixir?

到目前为止,我一直试图用Regex来解决这个问题.谢谢!

elixir

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