小编dav*_*nes的帖子

属性名称与类名匹配时要执行的操作

在我们的C#代码中,我们有一个名为Project的类.我们的基础BusinessObject类(所有业务对象都继承自)定义了一个属性:

public Project Project { get; set; }
Run Code Online (Sandbox Code Playgroud)

只要我们保持在C#代码库中,这通常不是问题.但是,这些业务对象类通过网络在Web服务中公开.某些消费语言(例如Flex的actionscript)无法处理具有与其类同名的属性.

这个命名冲突发生在我们代码中的所有地方.有时,更改属性或类的名称很容易.有时它真的很难.我们绞尽脑汁,无法想出一个很好的标准方法来处理这个问题.可以将Project类重命名为ProjectType或ProjectInfo,但这很丑陋并且会破坏我们所有消费者的现有代码.我们可以保留类型名称相同并将属性的名称更改为ProjectInfo,但这会导致相同的问题.

有没有人对这种情况有任何指导或最佳做法?

编辑:

回应一些建议:

  • 方法不会通过电线暴露,因此我们不能使用方法.
  • 我更喜欢标准的命名约定,它也符合微软自己的命名标准.
  • 可以选择为Flex公开不同的合同.但是,我们正在使用Weborb for Flex interop.Weborb使用反射来精确匹配属性名称,而不是使用XML或SOAP序列化.如果有人对Weborb的自定义序列化有更多了解,那将会很有帮助.

编辑#2:

作为参考,我们最终将属性重命名为:

public Project ProjectInfo { get; set; }
Run Code Online (Sandbox Code Playgroud)

c# web-services properties

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

first_or_create通过电子邮件,然后保存嵌套模型

我两个型号UserSubmission如下:

class User < ActiveRecord::Base
  # Associations
  has_many :submissions
  accepts_nested_attributes_for :submissions

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :name, :role, :submission_ids, :quotation_ids, :submissions_attributes

  validates :email, :presence => {:message => "Please enter a valid email address" }
  validates :email, :uniqueness => { :case_sensitive => false }
end

class Submission < ActiveRecord::Base
  belongs_to :user
  attr_accessible :due_date, :text, :title, :word_count, :work_type, :rush, :user, :notes

  validates :work_type, :title, :text,:presence => true
  validates :text, :length => { …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails nested-attributes ruby-on-rails-3.2

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

Rails实现基于数据库的文件系统

因为"文件系统"和"rails"是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板.

我已经能够实现UserDirectory模型(后者使用Ancestry),我正在为File模型工作(我的应用程序只需要一种文件).

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation
  has_secure_password
  has_many :directories, dependent: :destroy
  # ...
end # class User

class Directory < ActiveRecord::Base
  attr_accessible :name, :parent_id
  has_ancestry
  belongs_to :user
  has_many :files, dependent: :destroy
  # ...
end # class Directory

# not actually implemented, yet
class File < ActiveRecord::Base
  attr_accessible :name
  belongs_to :directory
  # ...
end # class File
Run Code Online (Sandbox Code Playgroud)

在视图中我使用jsTree来呈现树和一个表单来添加/删除,编辑......这需要改为使用AJAX,因为重定向回同一页面不会保留树的展开/折叠状态.

然而,我有这种唠叨的感觉,我正在做一些已经做过很多次的事情.您能否提供有关此类应用程序的链接或提供有关实现模型部分和视图部分的提示?

ruby filesystems ruby-on-rails

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

如何强制机架:session + sinatra从params而不是cookies读取"rack.session"

我正在处理oauth 1.0(twitter和flickr).网站在端口80工作,oauth服务器工作在端口8080

算法:

  1. 将ajax请求发送到oauth服务器以检查用户是否具有有效的access_token
  2. 如果用户没有access_token或access_token已过期,则打开授权窗口
  3. 在oauth服务器的用户会话中保存access_token
  4. 将共享数据发送到oauth服务器

它使用sinatra + rack:session + rack :: session :: sequel + sqlite来存储会话.它发送Set-Cookie: rack.session=id每个响应

我正在使用两种类型的请求:带有jquery的crossdomain ajax和带有window.open的常规请求.我有一个很大的安全问题,传递cookie到跨域ajax请求.

无论服务器的响应头包含什么

访问控制允许标题:*

铬会引发安全错误:

拒绝设置不安全的标题"Cookie"

我想通过传递rack.session = id来发布数据并加载它来避免这个问题:

before "/twitter/connect.json" do
  session = Rack::Session::something(params["rack.session"])
end
Run Code Online (Sandbox Code Playgroud)

但我不能在文档中找到如何做到这一点

ruby rack oauth sinatra cors

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

VirtualEnv for Python与Ruby的RVM基本相同

之前使用过VirtualEnv,我想知道RVM本质上是完全相同的行为,创建独特的环境,更新依赖关系不会破坏各种项目,或者它是否以某种方式离开.

ruby python ruby-on-rails virtualenv rvm

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

Rails:将值分配给模型中的字段

我有两个字段,first_name和brand_name。用户在登录期间输入first_name。如果他是所有者,则输入brand_name。用户创建帐户时,默认情况下,brand_name等于first_name。用户可以稍后进行更改。

为此,我在User模型中编写了此方法,

def brand_name
    first_name
end
Run Code Online (Sandbox Code Playgroud)

但是,尽管用户输入了不同的brand_name,但仍将brand_name设置为first_name。我尝试过这种方式:

def brand_name
    if brand_name.nil?
      first_name
    else
      brand_name
    end
end
Run Code Online (Sandbox Code Playgroud)

但给出错误-SystemStackError:

stack level too deep
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

ruby activerecord ruby-on-rails-3.2

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