小编Sim*_*tti的帖子

从字符串中提取的最大和最小单词

我有一个字符串,因为"Frederik will not come office tomorrow.So please you have to do his tasks".我想要最小和最大长度的单词作为哈希如下:

{2=>["So", "to", "do"], 8=>["Frederik", "tomorrow"]}
Run Code Online (Sandbox Code Playgroud)

那么最简单的方法是什么呢?

ruby

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

nil的未定义方法`update_attributes':NilClass

我正在进行一种拍卖/捐赠项目,我想改变产品的属性,这是一个表示产品已经捐赠的布尔值.

我现在这样做的方式如下:

视图:

<%= form_for(@product) do |f| %>

  <%= f.label "Are you sure you want to get this product?"%>
  <%= f.check_box :donated%>

  <%= f.submit "Receive!", class: "btn btn-large btn-primary" %>
 <% end %>
Run Code Online (Sandbox Code Playgroud)

控制器:

   before_filter :signed_in_user, only: [:create, :destroy, :show, :index, :update]
   ...
   def update  
     @product.update_attributes(params[:product])
     flash[:success] = "Product donated!"
   end
Run Code Online (Sandbox Code Playgroud)

路线:

resources :products, only: [:show, :create, :new, :update]
Run Code Online (Sandbox Code Playgroud)

而且我得到了以下错误:

undefined method `update_attributes' for nil:NilClass

app/controllers/products_controller.rb:30:in `update'
Request

Parameters:

{"utf8"=>"?",
 "_method"=>"put",
 "authenticity_token"=>"M9q/qVcDmVIlEx+T5VFF0YtkYtzHRUCZLkPkDjc7MJc=",
 "product"=>{"donated"=>"1"},
 "commit"=>"Update product",
 "id"=>"1"}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?感谢致敬.

ruby ruby-on-rails

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

如何为帖子建立标记系统?

我一直在试图找出在rails 3.1中构建用户标记系统的最佳方法.我试验了make_flaggable宝石,但它没有给我我需要的东西.

我正在为我的用户模型使用设计,我有一个属于用户的Post模型.我需要能够检索从站点管理员端标记的所有帖子的列表.到目前为止,我很难获得.

我不确定在Flag模型和Post/User模型之间需要使用哪种类型的关系.我一直在阅读多态关系,这看起来很有希望.

任何想法或反馈将不胜感激!

ruby-on-rails devise ruby-on-rails-3.1

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

在模型方法中使用Rails中的当前用户

我目前正在尝试为用户实现简单的审计(仅适用于destroy方法).这样我知道用户是否已被管理员删除或用户自行删除.我想在deleted_by_id我的模型中添加列.

我正在考虑使用before_destroy,并检索用户信息,如本文所述:

http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/

module UserInfo
  def current_user
    Thread.current[:user]
  end

  def self.current_user=(user)
    Thread.current[:user] = user
  end
end
Run Code Online (Sandbox Code Playgroud)

但是这篇文章是从2007年开始的,我不确定这会在多线程中工作吗?是否有关于这个主题的更新的内容,有没有人最近做过这样的事情来传递经验?

ruby ruby-on-rails

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

Ruby:如果它不在数组B中,如何从数组A中删除项目?

我准备了这两个数组:

list_of_students = Student.where('class = ?', param[:given_class])
list_of_teachers = Teacher.where(...)
Run Code Online (Sandbox Code Playgroud)

Studentbelongs_to TeacherTeacherhas_many students.

现在,我需要从list_of_students所有项目(学生)中删除,其中teacher_id不包括在内list_of_teachers.

我在比较数组时发现了一些提示和HOWTO,但没有一个能够帮助我们找出这种情况.

先感谢您

ruby ruby-on-rails rails-activerecord

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

将time.Date分配给* time.Time指针以测试JSON反序列化

我有一个结构,其中一个字段被声明为String,但它旨在存储时间。因此,我将其更改为*time.Time请参阅commit),请注意使用指针绕过问题(在",omitempty"空白日期的情况下实际上并没有忽略该值)

到目前为止,一切都很好。问题是,现在我正在尝试编写代码以测试JSON字符串的正确反序列化,但是我无法将结果与

want := Record{Id: 1539, UpdatedAt: time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}
Run Code Online (Sandbox Code Playgroud)

因为UpdatedAt它应该是一个指针*time.Time,而time.Date返回一个time.Time

我不能用

want := Record{Id: 1539, UpdatedAt: &time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}
Run Code Online (Sandbox Code Playgroud)

因为它确实被拒绝(它需要一个指针,所以我尝试分配一个结构)

cannot take the address of time.Date(2014, 1, 15, 22, 3, 3, 0, time.UTC)
Run Code Online (Sandbox Code Playgroud)

这是我的问题。有没有一种方法来创建一个Recordtime.Date上飞(因此不分配time.Date给一个变量,然后得到的指针)和/或对问题的解决方法,保证我能当对象被序列分配适当的零值/反序列化并且日期为空?

json pointers go

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

Application.css.scss导致rails 4出现问题

所以我一直在学习ruby on rails,我决定在myrubyblog应用程序上添加一些样式到我的新帖子页面.一切都在运作.几天后我决定从posts.scss文件导入scss到application.css.scss,我得到这个错误

RuntimeError in Home#index
Showing c:/Sites/myrubyblog/app/views/layouts/application.html.erb where line #5 raised:

Current ExecJS runtime does't support ES5. Please install node.js.
  (in c:/Sites/myrubyblog/app/assets/stylesheets/application.css.scss)
Extracted source (around line #0):
Run Code Online (Sandbox Code Playgroud)

删除我的application.css.scss文件后,页面正常工作.删除实际的scss代码并离开application.css.scss后,页面开始再次出现问题.我决定删除application.css.scss文件.这出于某种原因允许我设置的样式显示,即使样式表本身已被删除.

ruby ruby-on-rails

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

如果条件块很短,则使用三元组

我有一部分工作,但我被告知,如果条件块很短,我应该使用三元组.

module PayerContractsHelper

  def showPayerContractRate(val)
    json_val = JSON.parse(val)
    if(json_val['amount'].present?)
      "display:block"
    else
      "display:none"
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

我怎么能用这段代码把它变成三元组呢?我假设代码更少,更精确.我怎样才能做到这一点?

ruby ruby-on-rails

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

使用rails 5合并ActionController :: Parameters

在rails 4中,我可以合并!StrongParams,但因为rails 5(beta1)合并!不可用.这是在控制器中执行此操作的最佳方法

  params = ActionController::Parameters.new({
             name: 'Francesco',
             age:  22,
             role: 'admin'
         })
         params.merge!(city: "Los Angeles")
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actioncontroller strong-parameters ruby-on-rails-5

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

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