在我们的C#代码中,我们有一个名为Project的类.我们的基础BusinessObject类(所有业务对象都继承自)定义了一个属性:
public Project Project { get; set; }
Run Code Online (Sandbox Code Playgroud)
只要我们保持在C#代码库中,这通常不是问题.但是,这些业务对象类通过网络在Web服务中公开.某些消费语言(例如Flex的actionscript)无法处理具有与其类同名的属性.
这个命名冲突发生在我们代码中的所有地方.有时,更改属性或类的名称很容易.有时它真的很难.我们绞尽脑汁,无法想出一个很好的标准方法来处理这个问题.可以将Project类重命名为ProjectType或ProjectInfo,但这很丑陋并且会破坏我们所有消费者的现有代码.我们可以保留类型名称相同并将属性的名称更改为ProjectInfo,但这会导致相同的问题.
有没有人对这种情况有任何指导或最佳做法?
编辑:
回应一些建议:
编辑#2:
作为参考,我们最终将属性重命名为:
public Project ProjectInfo { get; set; }
Run Code Online (Sandbox Code Playgroud) 我两个型号User和Submission如下:
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) 因为"文件系统"和"rails"是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板.
我已经能够实现User和Directory模型(后者使用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,因为重定向回同一页面不会保留树的展开/折叠状态.
然而,我有这种唠叨的感觉,我正在做一些已经做过很多次的事情.您能否提供有关此类应用程序的链接或提供有关实现模型部分和视图部分的提示?
我正在处理oauth 1.0(twitter和flickr).网站在端口80工作,oauth服务器工作在端口8080
算法:
它使用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)
但我不能在文档中找到如何做到这一点
之前使用过VirtualEnv,我想知道RVM本质上是完全相同的行为,创建独特的环境,更新依赖关系不会破坏各种项目,或者它是否以某种方式离开.
我有两个字段,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 ×5
activerecord ×1
c# ×1
cors ×1
filesystems ×1
oauth ×1
properties ×1
python ×1
rack ×1
rvm ×1
sinatra ×1
virtualenv ×1
web-services ×1