我想知道这里有人能否解释一下我最近关于Razor的一些问题.
1)基本上,我想将部分定义分成多个部分?为什么?因为我想过要.
遗憾地,使用@section"sectionname"两次抛出异常.
深入研究Razor源代码,我看到Razor检查了一个部分是否已经定义,并且如果已经定义了则抛出异常.
由于Razor使用委托来呈现部分,我将代码更改为使用Delegate.Combine(如果之前已经定义了部分),并且它工作正常,我现在能够创建一个声明两次(或更多)的部分.
2)当在视图中定义部分但未在布局页面中呈现时,将抛出异常.我没有看到一个优雅的解决方案来克服这一点.如果我想使用包含多个布局页面的View页面......这是一个问题.
查看源代码(再次),只有一个foreach检查视图中定义的每个部分是否已被渲染,然后如果尚未渲染部分则抛出异常.
我已经想到了一些解决方案(特别是对于我的第二个问题,继承自视图基类并将非呈现的部分暴露给布局页面并进行一些处理),但它们看起来有点像黑客.有没有更好的解决方案然后实际改变来源?
不是很重要,但是如果有人对设计决策有任何见解导致Razor成为这样的话,我也会感激,因为这似乎是一个非常严格的设计.
更新:
@davidferguson和@takepara你错了.我的问题不是在布局中定义一个部分,而是在视图中没有定义它,反之亦然.在视图中定义它但不在布局中定义它.
我有照片属于收藏和用户.照片始终属于用户,但可能未分配给集合.
在我的控制器中,这完美地工作:
@collection_photos = Photo.where( :collection => @collection, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
但是,这失败了......
@other_photos = Photo.where( :collection => nil, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
......但这有效:
@other_photos = Photo.where( :collection_id => nil, :user => current_user )
Run Code Online (Sandbox Code Playgroud)
当集合设置为nil时,我收到以下错误消息:No attribute named 'collection' exists for table photos.
如果我传递一个对象,它知道collection_id从符号中搜索:collection,但如果我没有传递一个对象,它似乎并不知道该关联.
我理解正确吗?任何人都可以解释一下为什么:collection=>nil不起作用?
所以我在Autailsmplete for Rails 3上找到了一些很棒的信息,它看起来非常简单易用.但我有一个不适合的用例,我需要一些建议.
我想让用户能够通过简单的表单将产品和服务添加到发票中.我希望他们能够输入Item字段并将其从Product.name和Service.name自动完成作为单个集合.
我正在考虑尝试编写覆盖所有三个的父模型,但我仍然认为这不能解决我的问题,因为我无法从我理解的自动完成定义中使用函数.
关于如何尝试实现这一目标的任何建议?即使使用简单的搜索示例,它们似乎仅限于单个模型.
所以我有一个我负责编辑的Access数据库项目文件.我安装了Access 2003和2007.由于某种原因,ADP仅支持2003.无论如何,我遇到的问题是我无法弄清楚如何在后面的东西中获得VBA代码.
以前的开发人员已经非常好地将所有内容锁定在GUI上,这样我打开应用程序时唯一能得到的就是通知说它无法在服务器上找到数据库.(很可能那里也存在问题,但由于我无法查看代码,我不确定.)
有谁知道如何绕过这里发生的GUI锁定?
迈克尔
如何通过Ajax删除项目时刷新Masonry?这是我用来删除项目的代码:
if($deletes = $('a[rel=delete]')) {
$deletes.click(function() {
if(!window.confirm('Are you sure you wish to delete this picture?'))
return false;
$t = $(this);
$.post(
$t.attr('href'),
{},
function(data) {
if(data == "success")
$t.parents('.deleteable:first').fadeOut();
}
);
return false;
});
}
Run Code Online (Sandbox Code Playgroud)
我想要刷新的原因是在删除项目后消除结果空格.
我想停止执行BASH脚本,直到进程关闭(我将PID存储在变量中).我在想
__CODE__
我见过的大多数例子都使用/ dev/null,它似乎需要root.有没有办法在不需要root的情况下执行此操作?
非常感谢你提前!
private List<Movie> movieItems = null;
public List<Movie> getMovieItems() {
final int first = 0;
if (movieItems == null) {
getPagingInfo();
movieItems = jpaController.findRange(new int[]{pagingInfo.getFirstItem(), pagingInfo.getFirstItem() + pagingInfo.getBatchSize()});
Collections.sort(movieItems, new Comparator(){
public int compare (Object o1, Object o2){
Date d1 = movieItems.get(((Movie)o1).getMovieId()).getDate();
Date d2 = movieItems.get(((Movie)o2).getMovieId()).getDate();
if(d1.before(d2)){
movieItems.set(1, (Movie)o1);
movieItems.set(2, (Movie)o2);
}
return first;
}
});
}
return movieItems;
}
Run Code Online (Sandbox Code Playgroud)
jpaController带回了4部电影,给我以下内容
在java.util.Arrays中在java.util.Vector.get(Vector.java:694)在entitybeans.jsf.PeliculaController $ 1.compare(PeliculaController.java:260)4:java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围.mergeSort(Arrays.java:1270)在java.util.Arrays.sort(Arrays.java:1210)在java.util.Collections.sort(Collections.java:159)在entitybeans.jsf.PeliculaController.getPeliculaItems(PeliculaController.的java:257)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在java.lang中.reflect.Method.invoke(Method.java:597)在javax.el.BeanELResolver.getValue(BeanELResolver.java:302)在javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)在com.sun.faces. el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)在com.sun.el.parser.AstValue.getValue(AstValue.java:116)在com.sun.el.parser.A stValue.getValue(AstValue.java:163)....
有没有办法在不使用"dbo"的情况下调用用户定义的函数.在函数名称和参数之前?
使用:
SELECT USERFUNCTION(PARAM1, PARAM2, PARAM3, PARAMN)
Run Code Online (Sandbox Code Playgroud)
代替:
SELECT dbo.USERFUNCTION(PARAM1, PARAM2, PARAM3, PARAMN)
Run Code Online (Sandbox Code Playgroud) 自从我开始深入挖掘形式,联想,哈希,符号以来已经差不多一个星期......但似乎没有你的帮助我无法解决这个难题.
我正在开展一个展示不同画廊内容的项目.基本思想是当用户看到画廊的名称(名称是链接)时能够点击所选择的名称.然后显示属于此库的所有图像.在底部应该有一个链接"在此库中添加图像".
我的模特:
class Gallery < ActiveRecord::Base
attr_accessible :name
has_many :pictures
end
class Picture < ActiveRecord::Base
attr_accessible :image
belongs_to :gallery
end
Run Code Online (Sandbox Code Playgroud)
我在gallery_id上为'pictures'表创建了索引.
我的大问题出现在这里,如何将gallery_id传递给控制器的动作'new'.正如我在"使用Rails进行敏捷Web开发"中看到的那样,它可能是:
<%= link_to'在这里添加图片...',new_picture_path(:gallery_id => @ gallery.id)%>
在这种情况下似乎是foreign_key:gallery_id在浏览器的URL栏中公开.第二个问题是:gallery_id可用于控制器的"新"功能,但"创建"功能"消失"(导致错误"无法找到没有ID的图库").当我在_form中为图片添加隐藏字段时,问题就消失了,在我的情况下:
<%= form_for(@picture) do |f| %>
<div class="field">
<%= f.hidden_field :gallery_id , :value=>params[:gallery_id] %>
<%= f.label :image %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit "Create" %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
以下是我在'pictures'控制器中的定义:
def new
@gallery=Gallery.find(params[:gallery_id])
@picture=@gallery.pictures.build
end
def create
@gallery = Gallery.find(params[:gallery_id])
@picture = @gallery.pictures.new(params[:picture])
if @picture.save
redirect_to(@picture, :notice …Run Code Online (Sandbox Code Playgroud) access-vba ×1
activerecord ×1
adp ×1
asp.net-mvc ×1
associations ×1
autocomplete ×1
bash ×1
collections ×1
dbo ×1
heroku ×1
java ×1
jquery ×1
link-to ×1
pid ×1
razor ×1
shell ×1
sorting ×1
sql-server ×1
where ×1