小编Bil*_*hla的帖子

ActiveModel - View - Rails中的控制器而不是ActiveRecord?

我正在尝试为我的模型使用ActiveModel而不是ActiveRecord,因为我不希望我的模型与数据库有任何关系.

以下是我的模型:

class User
  include ActiveModel::Validations
  validates :name, :presence => true
  validates :email, :presence => true
  validates :password, :presence => true, :confirmation => true

  attr_accessor :name, :email, :password, :salt
  def initialize(attributes = {})
    @name  = attributes[:name]
    @email = attributes[:email]
    @password = attributes[:password]
    @password_confirmation = attributes[:password_confirmation]
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

class UsersController < ApplicationController
  def new
    @user = User.new
    @title = "Sign up"
  end
end
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<h1>Sign up</h1>

<%= form_for(@user) do |f| %>
<div class="field">
    <%= f.label :name %><br />
    <%= f.text_field …
Run Code Online (Sandbox Code Playgroud)

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

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

通过Ruby发送HTTP post请求

我对ruby和尝试一些基本的东西都很新.当我使用以下命令向服务器发送HTTP请求时:

curl -v -H "Content-Type: application/json" -X GET -d "{"myrequest":"myTest","reqid":"44","data":{"name":"test"}}" localhost:8099
Run Code Online (Sandbox Code Playgroud)

我的服务器将JSON数据视为"{myrequest:myTest,reqid:44,data:{name:test}}"

但是当我使用以下ruby代码发送请求时:

require 'net/http'

@host = 'localhost'
@port = '8099'

@path = "/posts"

@body = ActiveSupport::JSON.encode({
    :bbrequest => "BBTest", 
    :reqid => "44", 
    :data => 
    {
        :name => "test"
    }
})

request = Net::HTTP::Post.new(@path, initheader = {'Content-Type' =>'application/json'})
request.body = @body
response = Net::HTTP.new(@host, @port).start {|http| http.request(request) }
puts "Response #{response.code} #{response.message}: #{response.body}"
Run Code Online (Sandbox Code Playgroud)

它将其视为"{\"bbrequest \":\"BBTest \",\"reqid \":\"44 \",\"data \":{\"name \":\"test \"}} "并且服务器无法解析它.也许我需要设置一些额外的选项来从Ruby发送请求以排除那些额外的字符?

你能帮忙吗?提前致谢.

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

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

切片获取结果控制器中断搜索显示

我完全被这个所困扰,无法弄清楚我错过了什么.也许还有很多东西需要了解核心数据.

这是我的Fetched Results Controller,它显示了一个无节表,但我的搜索显示控制器工作:

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                    managedObjectContext:self.buckyballDatabase.managedObjectContext
                                                                      sectionNameKeyPath:nil
                                                                               cacheName:nil];
Run Code Online (Sandbox Code Playgroud)

鉴于我应用sectionNameKeyPath,添加部分.部分被添加但我的搜索显示控制器坏了,抛出以下错误:

*** Assertion failure in -[UITableViewRowData rectForRow:inSection:], /SourceCache/UIKit_Sim/UIKit-2372/UITableViewRowData.m:1630
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect at invalid index path (<NSIndexPath 0x7481040> 2 indexes [0, 1])'
Run Code Online (Sandbox Code Playgroud)

这里是我的表视图数据源实现其中filteredList是NSArray: -

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if (tableView == self.tableView)
    {
        return [[self.fetchedResultsController sections] count];
    }
    else
    {
        return 1;
    }
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
    if (tableView == self.tableView)
    {
        return …
Run Code Online (Sandbox Code Playgroud)

xcode cocoa-touch objective-c nsfetchedresultscontroller ios

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

在rails上使用ruby发送HTTP请求

我是ruby on rails的新手,并试图简单地测试我是否可以从我的控制器中执行以下操作:

curl -v -H"Content-Type:application/json"-X GET -d"{bbrequest:BBTest reqid:44 data:{name:"test"}}" http:// localhost:8099

在HTTP请求中发送JSON的最佳做法是什么?

谢谢

json ruby-on-rails-3

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

Mac OS X Lion上的sqlite3 gem ...失败了!

我刚刚将Mac升级到Lion,但不幸的是我不得不重新设置我的Rails开发环境.使用以下版本的软件:

ruby 1.8.7(2010-01-10 patchlevel 249)[universal-darwin11.0] Rails 3.0.9 sqlite3 3.7.5

当我运行命令时:sudo gem install sqlite3

它抛出以下异常:

ERROR:  Error installing sqlite3:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb 
Run Code Online (Sandbox Code Playgroud)

无法找到ruby的头文件

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Run Code Online (Sandbox Code Playgroud)

它补充说:

Gem文件将保留在/Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3中以供检查.结果记录到/Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out

有没有人潜入狮子......

谢谢

ruby rubygems ruby-on-rails-3

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

为什么使用 Spring Cloud Contract 在 Gradle、Kotlin、Spring Boot 应用程序中compileTestGroovy 失败

Spring Cloud Contract Gradle 插件 (2.0.2.RELEASE)

我的Kotlin项目是一个带有合同文件的Spring Boot 2.0.5.RELEASE应用程序,并且基本测试类成功生成了一个文件,打开该文件表明 IntelliJ 对该文件感到满意,但运行失败Groovysrc/test/resources/contractscom.mycompany.practice.base.producer.PracticeMessagingBaseContractVerifierTest./gradlew clean buildcompileTestGroovy

> Task :compileTestGroovy FAILED
file or directory '/Users/abc/Documents/code/dev/practice-service/src/test/groovy', not found
file or directory '/Users/abc/Documents/code/dev/practice-service/src/test/groovy', not found
Task ':compileTestGroovy' is not up-to-date because:
  Task has failed previously.
Excluding []
file or directory '/Users/abc/Documents/code/dev/practice-service/src/test/groovy', not found
Starting process 'Gradle Worker Daemon 1'. Working directory: /Users/abc/.gradle/workers Command: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/bin/java -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dfile.encoding=UTF-8 -Duser.country=GB -Duser.language=en -Duser.variant -cp /Users/abc/.gradle/caches/4.7/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 1' …
Run Code Online (Sandbox Code Playgroud)

spring-cloud-contract

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

Flex中的可绑定属性更改事件

任何人都可以帮我解决这个谜团:

我有一个名为Box.as的组件,它具有以下两个属性,并定义了它们的getter和setter:

private var _busy:Boolean;
private var _errorMessage:String;
Run Code Online (Sandbox Code Playgroud)

在使用此组件的MXML中,我将其定义如下:

<components:Box skinClass="skins.components.BoxSkin"
                busy="{presenter.boxBusy}"
        errorMessage="{presenter.boxErrorMessage}"/>
Run Code Online (Sandbox Code Playgroud)

其中presenter变量在MXML中定义,而Presenter类的boxBusy和boxErrorMessage变量定义为可绑定属性更改事件:

[Bindable(event="propertyChange")]
function get boxBusy():Boolean;
function set boxBusy(value:Boolean):void;

[Bindable(event="propertyChange")]
function get boxErrorMessage():String;
function set boxErrorMessage(value:String):void;
Run Code Online (Sandbox Code Playgroud)

问题是,无论何时我为演示者更改boxErrorMessage,我都会看到MXML中的影响但是当我更改boxBusy时根本没有任何反应.我需要做一些额外的布尔变量吗?

非常感谢提前.

actionscript-3 flex4.5

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