我对这一切都很陌生.我正在使用ASP.NET MVC C#LINQ to SQL.
我有一个编辑页面,可以加载作者及其所有书籍.通过Ajax调用加载Books .
<script type="text/javascript">
$(document).ready(function() {
LoadBooks();
});
function LoadBooks() {
$(".Books").hide();
$(".Books").load("/Books/Edit/<%= Model.AuthorID %>");
$(".Books").show('slow');
}
</script>
Run Code Online (Sandbox Code Playgroud)
这部分工作正常.页面加载作者信息,然后加载书籍(DIV id ="Books"中的部分视图,只有书籍类别和书名):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution.Controllers.BooksController+BooksViewModel>" %>
<% using (Html.BeginForm(null,null, FormMethod.Post,new { id = "bookform" }))
{%>
<fieldset>
<legend>Books</legend>
<%int i = 0;
foreach (var book in Model.Books)
{%>
<%= book.BookID%>
<%= Html.Hidden("book[" + i + "].BookID", book.BookID) %>
<%= Html.DropDownList("book[" + i + "].CatID", new SelectList(Model.Categories, "CatID", "CatTitle", book.CatID))%>
<%= Html.ValidationMessage("CatID", …Run Code Online (Sandbox Code Playgroud) 我想抓住所有包含可购买的类别products.
class Product < ActiveRecord::Base
belongs_to :category
scope :purchaseable, where(:available => true)
end
class Category < ActiveRecord::Base
has_many :products
scope :with_purchaseable_products, ?????
end
Run Code Online (Sandbox Code Playgroud)
所以,我正在尝试定义:with_purchaseable_products.这有效:
scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')
Run Code Online (Sandbox Code Playgroud)
但那不是很干.有没有办法将我的:purchaseable范围应用到products我的:with_purchaseable_products范围内?
谢谢.
我有一些已经被转义的文本文件中的json:
"{\"hey\":\"there\"}"
当我尝试读取文件时:
File.open("\file\path.txt").read
它再次转义内容,以便现在双重转义:
"\"{\\\"hey\\\":\\\"there\\\"}\""
有办法防止逃跑吗?
或者,是否有一种简单的方法可以在读取和转义字符串后对其进行处理?
谢谢.
编辑:
答案是有道理的,但无论如何我似乎无法解析JSON.
irb(main):018:0> json
=> "\"{\\\"hey\\\":\\\"there\\\"}\"\n"
irb(main):019:0> puts json
"{\"hey\":\"there\"}"
=> nil
irb(main):017:0> x = JSON.parse(json)
JSON::ParserError: 751: unexpected token at '"{\"hey\":\"there\"}"
'
Run Code Online (Sandbox Code Playgroud)
意外的令牌在哪里?
谢谢.
编辑2:
"问题是你的文件可能是有效的JS,但它不是有效的JSON,所以JSON库倾向于拒绝它."
我相信来源(我),所以如果我跑:
x = JSON.parse(eval(json))
有用!
谢谢.
我有一个字符串数组:
phrases = ["Have a good Thanksgiving", "Eat lots of food"]
我有另一个单词单词: words = ["eat", "food"]
如果字符串包含第二个数组中的所有单词,我想返回第一个数组中的条目.
所以,它应该看起来像这样:
phrases.select{ |x| x.include_all?(words) }
我是否应该创建include_all?函数来遍历words数组的每个成员并进行比较,或者是否有任何我缺少的内置方法?
这是一个Ruby on Rails 3.0.x项目.
我有一个"查找"表,其中包含来自供应商的数据.
当我从其他来源导入数据时,我想检查此表(加入SKU)以获取额外数据.
在我的应用程序中为此表创建模型似乎不对.我的应用程序永远不会更改数据,除了刚刚提到的数据查找之外,它不需要任何模型关联.只是偶尔访问它来检查一些信息.
访问此表的最佳做法是什么?
谢谢.
我可以在多个表中使用"标识"(唯一,非重复)列吗?例如,假设我有两个表:书籍和作者.
Authors
AuthorID
AuthorName
Books
BookID
BookTitle
Run Code Online (Sandbox Code Playgroud)
BookID列和AuthorID列是标识列.我希望标识部分跨越两列.因此,如果存在值为123的AuthorID,则不能存在值为123的BookID.反之亦然.
我希望这是有道理的.
这可能吗?
谢谢.
我为什么要这样做?我正在写一个APS.NET MVC应用程序.我正在创建一个评论部分.作者可以发表评论.书籍可以有评论.我希望能够将实体ID(书籍ID或作者ID)传递给某个操作,并让该操作提取所有相应的注释.如果它是书籍或作者或其他什么,该行动将无关紧要.声音合理吗?
我有一个名为EntityRating的ViewModel,其中一个属性是AverageRating.
当我实例化我的ViewModel(称为EntityRating)类型的新对象时,如何根据相关项目的Rating字段(在SQL Server中)设置EntityRating.AverageRating?
我想做这样的事情(显然不起作用):
var er = new EntityRating()
{
AverageRating = _db.All<Ratings>(X => X.RatingID = rating.RatingID).Average(RatingField);
};
Run Code Online (Sandbox Code Playgroud)
我可以平均数据库中对象的属性并将其分配给代码中对象的属性吗?
(很新,所以如果有任何术语关闭,或者如果您需要更多信息,请告诉我)
谢谢.
我知道这对其他人来说是一个问题,但我还没有找到解决我问题的方法.
我有一个部分视图显示在灯箱(彩盒)中.这是一个简单的形式.我希望表单提交并返回一些数据.数据将用于调用后续函数,我希望主DIV只是用"成功"消息更新.以下是局部视图的完整代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution2.Models.Category>" %>
<script type="text/javascript">
$('propcatform').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: $(this).serialize(),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data) { document.getElementById('main1').innerHTML = "Success"; },
failure: function() { document.getElementById('main1').innerHTML = "Failure"; }
})
});
</script>
<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "propcatform", name = "propcatform" }))
{%>
<div id="main1">
<fieldset>
<legend>Fields</legend>
<p>
<label for="CatTitle">Category Title:</label>
<%= Html.TextBox("CatTitle") %>
<%= Html.ValidationMessage("CatTitle", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</div> …Run Code Online (Sandbox Code Playgroud) 我不知道我做了什么,但是kaminari已经开始在我的应用程序中表现得很奇怪了.
在我的控制器中:
@producers = Producer.order(:name).page(params[:page])
Run Code Online (Sandbox Code Playgroud)
视图:
<%= paginate @producers %>
Run Code Online (Sandbox Code Playgroud)
结果是:
undefined method `num_pages' for #<ActiveRecord::Relation:0x000001026e6308>
Run Code Online (Sandbox Code Playgroud)
如果我在我的控制器中添加.per:
@producers = Producer.order(:name).page(params[:page]).per(25)
Run Code Online (Sandbox Code Playgroud)
我明白了
undefined local variable or method `per' for #<ActiveRecord::Relation:0x0000010928ef60>
Run Code Online (Sandbox Code Playgroud)
最后,奇怪的是,如果我移动.order(:name)到最后,它的工作原理:
@producers = Producer.page(params[:page]).order(:name)
Run Code Online (Sandbox Code Playgroud)
我猜我安装的其他宝石有一个page导致问题的范围或方法?
谢谢.
我正在使用ASP.NET MVC C#
我有一个jQuery调用删除一本书,然后在回调中我调用一个刷新书籍列表的函数.
function rembook(id) {
var agree=confirm("Deletion cannot be undone. Continue?");
if (agree)
{
jQuery.ajax({ url: "/Books/Delete/" + id, dataType: null, type: "POST", cache: true, callback: LoadBooks(), data: null });
return false;
}
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
这是LoadBooks(),如果重要的话:
function LoadBooks() {
$(".BookList").hide();
$(".BookList").load("/Books/Edit/<%= Model.AuthorID %>");
$(".BookList").show('slow');
}
Run Code Online (Sandbox Code Playgroud)
后期工作和LoadBooks()函数被调用.但是,刷新的书籍列表仍包含已删除的书籍.如果我然后手动调用LoadBooks()函数(通过页面上的链接),则会在没有删除的书籍的情况下重新加载书籍.为什么第一本书重新加载仍显示已删除的书?是否在实际删除本书之前发生了?
(我使用$ .post获得相同的结果("/ Books/Delete /"+ id,LoadProperties());)
谢谢.
asp.net-mvc ×4
ajax ×3
ruby ×3
activerecord ×2
jquery ×2
arel ×1
c# ×1
callback ×1
escaping ×1
form-submit ×1
json ×1
kaminari ×1
linq-to-sql ×1
pagination ×1
scope ×1
sql-server ×1
string ×1