小编sie*_*ied的帖子

Rails使用checkbox和jquery ajax更改布尔值

我是rails的新手,并尝试通过复选框和使用jquery ajax更改布尔值:

<%- @tasks.each do |task| %>
  <div class="task-wrapper">
    <%= check_box_tag 'completed', task.id , task.completed, :class => "task-check" %>
    <%= content_tag :span, task.task %>
    <%= content_tag :span, task.deadline %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

和javascript:

$(".task-check").bind('change', function(){
  if (this.checked){
    var bool = this.checked ? 1 : 0;
    $.ajax({
      url: '/todos/toggle',
      type: 'POST',
      data: '{"task_id":"'+ this.value +'", "bool":"'+ bool +'"}'
    });
  }
  else {
    alert("no");
  }
});
Run Code Online (Sandbox Code Playgroud)

那么控制器:

def toggle(task_id, bool)
  @task = Todo.find_by_id(task_id)

  if @task != nil?
    @task.update_attributes(:completed => bool)
  else …
Run Code Online (Sandbox Code Playgroud)

jquery boolean routes ruby-on-rails

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

Capybara webkit的数据库清理问题

我正在使用Cucumber编写我的集成测试和数据库清理程序以保持我的数据库清理.一切都很完美,因为我的测试不需要Javascript.

我可以使用Capybara webkit使这些最后的测试通过,但是我的数据库根本没有被清理.

这是我的features/support/env.rb文件:

require 'simplecov'
SimpleCov.start 'rails'
require 'cucumber/rails'

Capybara.default_selector = :css
Capybara.javascript_driver = :webkit

begin
  require 'database_cleaner'
  require 'database_cleaner/cucumber'
  DatabaseCleaner[:active_record].strategy = :transaction
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end


Before do
  DatabaseCleaner.start
end

After do |scenario|
  DatabaseCleaner.clean
end
Run Code Online (Sandbox Code Playgroud)

我想类似的东西这个检查是哪个驱动程序所使用的水豚,但没有奏效.我也试过了这篇文章第三部分中提到的hack,但后来没有任何工作......

我真的不知道如何实现这一点,任何帮助将不胜感激.

提前致谢.

ruby-on-rails cucumber capybara capybara-webkit database-cleaner

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

多种型号的范围

我有几个对象都有一个approved字段.

在所有模型中实施范围的最佳方法是什么?

例如,我有一个sighting对象和一个comment对象.在向公众提供之前,他们都必须得到管理员的批准.

所以,我怎么可以创建一个返回范围comment.approved以及sighting.approved分别不重复它在每一个模型?这是关注的问题吗?

ruby-on-rails

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

RSpec测试自定义验证器

我的模型中有以下验证器:

class ContinuumValidator < ActiveModel::Validator
  def validate(record)
    if !record.end_time.nil? and record.end_time < record.start_time
      record.errors[:base] << "An event can not be finished if it did not start yet..."
    end
  end
end

class Hrm::TimeEvent < ActiveRecord::Base
  validates_with ContinuumValidator
end
Run Code Online (Sandbox Code Playgroud)

如何使用Rspec进行测试?

这是我到目前为止所尝试的:(感谢zetetic)

describe "validation error" do
  before do
    @time_event = Hrm::TimeEvent.new(start_time: "2012-10-05 10:00:00", end_time: "2012-10-05 09:00:00", event_type: 2)
  end

  it "should not be valid if end time is lower than start time" do
    @time_event.should_not be_valid
  end

  it "raises an error if …
Run Code Online (Sandbox Code Playgroud)

ruby validation rspec ruby-on-rails rspec-rails

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

禁用 WebView 的拖放以支持其超级视图之一

我正在开发一个像 Mac Mail 这样的应用程序。我有一个允许用户编写新消息的 WebView。我实现了拖放功能,以便用户可以通过这种方式向消息添加附件。

为简单起见,我有一个包含 WebView 和其他视图的主视图。我在这个主视图上实现了拖放(使用 draggingEntered: 和 performDragOperation: 方法)并且它按预期工作。

问题是默认情况下,当在 WebView 中拖动文件时,例如图像,图像将显示在 WebView 中。但我不希望那样,我希望将其添加为附件,这就是为什么我禁用了 WebView 中的拖放功能:

  def webView(sender, dragDestinationActionMaskForDraggingInfo:draggingInfo)
    WebDragDestinationActionNone
  end
Run Code Online (Sandbox Code Playgroud)

但是现在我的文件将被添加为附件,如果我将它拖动到主视图内的任何位置,除了在 WebView 中(在这种情况下不调用 draggingEntered: 和 performDragOperation: 方法)。

我不知道我的问题是否足够清楚以找到答案,我还是 Cocoa 开发的新手,所以如果您需要更多详细信息,请随时告诉我。另一件事,我正在使用 Rubymotion,但如果您在 Objective-C 中有解决方案,那也将是完美的!

感谢您的任何帮助或建议。

解决方案

我子类化了 WebView 并覆盖了该performDragOperation方法以使其工作:

def performDragOperation(sender)
  self.UIDelegate.mainView.performDragOperation(sender)
end
Run Code Online (Sandbox Code Playgroud)

macos cocoa drag-and-drop objective-c rubymotion

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

NSTokenField 完成列表样式

我是 OSX 开发的初学者,所以我希望我的问题能在这里找到解决方案。

我的NSTokenField应用程序中有一个,我实现了该tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:方法。

一切正常,但目前的结果是这样的:

在此处输入图片说明

我想要的是让它看起来像这样:(类似于邮件应用程序中的完成)

在此处输入图片说明

这意味着我希望完成列表采用所有 NSTokenField 宽度。使用Accessibility Inspector,我可以看到与第一个 sreenshot 对应的层次结构是:

AXScrollArea -> AXList -> AXTextField

而对应于第二个屏幕截图的是:

AXScrollArea -> AXTable -> AXRow:AXTableRow -> AXTextField

所以我想我必须使用 anNSTableView来显示完成列表,但我不知道如何实现。有谁知道这怎么可能?

在此先感谢您的帮助。

编辑

至少有 2 人建议我实现该tokenField:menuForRepresentedObject:方法并使用适当的NSMenu属性定义菜单宽度。但是这个方法用于为给定的令牌定义一个菜单,我已经实现了它:

  def tokenField(tokenField, menuForRepresentedObject:representedObject)
    theMenu = NSMenu.alloc.initWithTitle("Email address context menu")
    item_0 = theMenu.insertItemWithTitle('add_to_address_book'.localized, action:'add_to_address_book', keyEquivalent:"", atIndex:0)
    item_0.setTarget(self)
    item_1 = theMenu.insertItemWithTitle('new_message'.localized, action:'new_message', keyEquivalent:"", atIndex:1)
    item_1.setTarget(self)
    theMenu
  end
Run Code Online (Sandbox Code Playgroud)

这给了我这样的东西:

tokenField:menuForRepresentedObject:

很棒的东西,但不是我在这里问的。

macos cocoa objective-c rubymotion

5
推荐指数
0
解决办法
453
查看次数

如何在Rails中设置路由的默认格式?

路由的代码如下:

  resources :orders, only: [:create], defaults: { format: 'json' }
  resources :users,  only: [:create, :update], defaults: { format: 'json' } 
  resources :delivery_types, only: [:index], defaults: { format: 'json' }
  resources :time_corrections, only: [:index], defaults: { format: 'json' }
Run Code Online (Sandbox Code Playgroud)

可以使用1个字符串为所有资源设置默认格式,每行不带"defaults"哈希值?谢谢.

ruby ruby-on-rails rails-routing

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

如何在rails中限制模型的嵌套属性数

我有两个相关的模型:Group和Member.

Group.rb:

has_many :members, :dependent => :destroy
accepts_nested_attributes_for :members, :reject_if => lambda { |a| a[:email].blank? and a[:id].blank? }, :allow_destroy => true
Run Code Online (Sandbox Code Playgroud)

我想要做的是添加一个验证,以防止member_count达到25后立即添加成员.

因此,如果我编辑一个组,请举例说:

  1. 我有20个现有成员
  2. 我在浏览器端添加了8个来自FORM的成员

它应保存前5个记录,然后引发错误,例如"您已超出嵌套属性的限制".

在rails中是否有任何内置方法来执行此操作.作为一个比较新手的铁路我不知道这个?

validation limit nested-attributes ruby-on-rails-3

2
推荐指数
3
解决办法
2509
查看次数

ruby on rails - Posts#show中的ActionView :: MissingTemplate

显示C:/Users/ManU/Desktop/quick_blog/app/views/posts/show.html.erb第3行引发的位置:

Missing partial posts/post with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "C:/Users/ManU/Desktop/quick_blog/app/views"
Run Code Online (Sandbox Code Playgroud)

提取的来源(第2行):

1. <p id="notice"><%= notice %></p>
2. <%= render :partial => @post %>
3. <%= link_to 'Edit', edit_post_path(@post) %> |
4. <%= link_to 'Back', posts_path %>
Run Code Online (Sandbox Code Playgroud)

我是铁轨上的红宝石......所以不知道如何处理这个问题......请帮我解决这个问题....

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

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