我正在使用Rails 3.0.3和ruby 1.9.2p0.
在我的profiles_controller(编辑功能)中,我有这个电话
@profile = Profile.find(params[:id])
@profile_items = @profile.profile_items.order("pos")
Run Code Online (Sandbox Code Playgroud)
以正确的顺序获取@profile_items,按"pos"排序.在_form.html.erb中我有以下内容
<% @profile_items.each do |pi| %>
<%= pi.pos %> |
<% end %>
<%= f.fields_for :profile_items do |f2| %>
<%= render 'profile_item_fields', :f => f2 %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
第3行是测试代码,用于显示@profile_items的顺序正确.但是当它们被渲染时,它们已经丢失了排序顺序!
现在我已经搜索了很多答案,我认为这必须是一个常见的"陷阱".
感谢任何帮助......
我可能有一组看起来像这样的if语句:
if (a and b and c and d) {
// do stuff
} else (!a and b and c and d) {
// do something else
} else (!a and !b and c and D) {
// do yet something else
} ...
Run Code Online (Sandbox Code Playgroud)
等等所有可能的排列.
我想这样做:
switch ((a ? 'Y' : 'N') . (b ? 'Y' : 'N') . (c ? 'Y' : 'N') . (d ? 'Y' : 'N')) {
case 'YNYN':
// do stuff
break;
case 'NNNN':
// …
Run Code Online (Sandbox Code Playgroud) 有没有人尝试在C中提供对迭代器的支持.我不是在寻找精确的C++ STL :: Iterator但是对于某些想法的最小支持对我来说是个好点.
我正在开发像stl一样的容器库,但支持很少,所以我需要在这些容器中使用这种功能.
我期待定义某些算法接口集(类似于STL).例如sort,它将采用开始和结束迭代器,并且应该适用于任何容器.
我有一个带有Grid和TreeView的WPF窗口.Grid的datacontext绑定到树视图上的选定项.但是,因为并非所有treeviewitems都适用,所以如果treviewitem不适用,我想禁用网格.所以,我创建了一个值转换器来进行空检查并返回一个bool.(在这种情况下,适用的项目不会为空)
问题是从未使用过值转换器.我设定了破发点,他们从未被击中过.我有其他价值转换器我正在使用它们都工作得很好.
有什么我想念的吗?
<Grid Grid.Column="1" Grid.Row="0" DataContext="{Binding MyVal}" IsEnabled="{Binding MyVal, Converter={StaticResource NullCheckConverter}}" Margin="2,2,2,2">
Run Code Online (Sandbox Code Playgroud)
并不是说这个问题很重要,但这里是ValueConverter代码:
internal class NullCheckValueConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !(value == null);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud) 我有两个实体,比如商业和区域.
相关属性:
业务 - 区域,区域2,代码
区域 - areaId,areaName
区域和区域2的业务地图到区域中的ID
我正在尝试编写一个Hibernate标准,该标准仅返回所有业务领域.
SQL看起来像:FROM area a LEFT OUTER JOIN business b on a.areaId = b.area或a.areaId = b.area2 WHERE b.code!= null GROUP BY a.areaName
这就是我所拥有的:
DetachedCriteria criteria = DetachedCriteria.forClass(Business.class)
.setProjection(Property.forName("area"))
.setProjection(Property.forName("area2"))
.add(Restrictions.ne("code", null));
Criteria criteriaArea = fullTextSession.createCriteria(Area.class)
.createAlias("areaId", "areaId", CriteriaSpecification.LEFT_JOIN)
.add(Property.forName("areaId").in(criteria));
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我得到一个"不是关联:areaId"查询异常.
任何想法为什么会这样?谢谢.
implement
还是extend
可以用吗?实现似乎是一种强制某类方法存在的方法,并且这些方法函数调用的格式正确.实现不是将变量或"设置"传递给类的方法吗?
预期的现实生活场景:我有一个电子商务平台,其中包含多个支付类,所有支付类都遵循相同的设计.当应该添加新的支付类时,很容易遵循定义的设计interface
,从一开始就确保所有的零碎都在那里.
扩展类使扩展(child?)类继承其父类的所有内容,但声明为的方法和变量除外private
?
预期的现实生活场景:我有一个叫sessions
有两个名为sessioncookies
和的子类的类databasesessions
.sessioncookies
并且databasesessions
,它们一起从其父会话继承了许多相互配置选项,从而可以轻松更改配置选项以影响各种最终的访客数据存储.
鉴于下面的代码,编译器显示一条指向该代码的消息error: templates may not be ‘virtual’
.有没有人有关于如何解决这个bug的建议?
template < class FOO_TYPE>
class CFoo{
public:
...
template < class BAR_TYPE >
virtual void doSomething( const CBar<BAR_TYPE> &); // here's the error
...
virtual ~CFoo();
protected:
MyClass < FOO_TYPE > * m_pClass;
};
template < class FOO_TYPE >
template < class BAR_TYPE >
void CFoo<FOO_TYPE>::doSomething( const CBar<BAR_TYPE> & refBar ){
...
}
Run Code Online (Sandbox Code Playgroud) 我有两套数据行.它们都是IEnumerable.我想将这两个列表追加/连接到一个列表中.我确信这是可行的.我不想做一个for循环,并注意到两个列表上有一个Union方法和一个Join方法.有任何想法吗?
当我尝试这样做时:
var $example = "Example";
echo <<<EOT
<p>$example</p>
EOT;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
解析错误:语法错误,意外的T_VAR .....在线...
这里发生了什么??据我所知,这应该有效.
我使用的是PHP 5.3.5.
我开始研究JNI,据我所知,如果加载的dll出现问题,jvm可以在现场终止.
即,过程无法受到保护,例如捕获异常时.
因此,如果我的理解是正确的,那么我的问题是在使用jni时是否存在针对这种情况的标准方法/模式.
或者以不同的方式说明,使用jni设计的流程是为了避免这些问题吗?或者预计不会出现这样的问题?
谢谢.