在生成新控制器的那一刻,Rails也.js.coffee为控制器生成一个文件.由于我不使用CoffeeScript,我希望Rails .js为我生成文件.
是否足以注释掉coffee-railsgem以完全禁用Rails 3.1应用程序中的CofeeScript?
如果我在Grails控制台中执行此代码:
def p = new Post(title: "T");
p.save(flush: true); // or p.save();
Post.count();
Run Code Online (Sandbox Code Playgroud)
GORM不会抛出任何异常,但数据不会保存在我的数据库中.我究竟做错了什么?
我应该延长或包括ActiveModel:Validations:Callbacks:ClassMethods或ActiveModel:Validations:Callbacks?
我在我的一个控制器中有一个这样定义的动作方法:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody Post create(@Valid Post post, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
// how to return an error status + error messages from here?
} else {
postRepository.persist(post);
return post;
}
}
Run Code Online (Sandbox Code Playgroud)
当帖子成功保留后,我将帖子返回给客户端.但是当它有验证错误时,我想将错误状态代码以及所有验证错误消息返回给客户端.
最好的方法是什么?
任何想法,为什么我在调用时遇到此错误collection.fetch?
它出现在代码的这一部分:

这是触发错误的代码:
$(document).ready ->
SearchResult = Backbone.Model.extend
SearchResults = Backbone.Collection.extend
url: "/backbone/search"
model: SearchResult
parse: (response)->
console.log response
new SearchResult
id: response.id
title: response.title
searchResults = new SearchResults()
searchResults.fetch()
Run Code Online (Sandbox Code Playgroud) 根据Rails指南和这个 Railscasts插曲,当两个对象(例如和)之间存在一对多关联时,我们可以提交多个实例以及表单提交过程,类似于:ProjectTaskTaskProject
<% form_for :project, :url => projects_path do |f| %>
<p>
Name: <%= f.text_field :name %>
</p>
<% for task in @project.tasks %>
<% fields_for "project[task_attributes][]", task do |task_form| %>
<p>
Task Name: <%= task_form.text_field :name %>
Task Duration: <%= task_form.text_field :duration %>
</p>
<% end %>
<% end %>
<p><%= submit_tag "Create Project" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这将在表单中生成这样的HTML块的多个副本,每个任务一个:
<p>
Task Name: <input name="project[task_attributes][name]">
Task Duration: <input name="project[task_attributes][duration]">
</p>
Run Code Online (Sandbox Code Playgroud)
我的问题是,Rails如何理解哪些 …
例如,如何在此控制器操作方法中处理验证错误和可能的异常:
@RequestMapping(method = POST)
@ResponseBody
public FooDto create(@Valid FooDTO fooDto, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return null; // what to do here?
// how to let the client know something has gone wrong?
} else {
fooDao.insertFoo(fooDto); // What to do if an exception gets thrown here?
// What to send back to the client?
return fooDto;
}
}
Run Code Online (Sandbox Code Playgroud) 在MongoMapper中,我可以使用以下查询来搜索基于正则表达式匹配的项目:
Foo.where(:name => /Foo.*/)
Run Code Online (Sandbox Code Playgroud)
如何搜索其name字段不匹配的项目/Foo.*/?
当我在浏览器中调用此URL时:
http://localhost:8080/app/foo.json
Run Code Online (Sandbox Code Playgroud)
Spring在此错误消息中响应406状态代码:
此请求标识的资源只能根据请求"accept"headers()生成具有不可接受特征的响应.
但是我已经定义了我的内容协商视图解析器,如下所示:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="favorPathExtension" value="true" />
<property name="ignoreAcceptHeader" value="true" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
<entry key="html" value="text/html"/>
</map>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我的控制器定义如下:
@Controller
@RequestMapping(value = "/foo")
public class ToowootController {
@RequestMapping(method = GET)
@ResponseBody
public FooDTO index() {
// return fooDTO
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法我做错了什么?
java ×3
spring ×3
spring-mvc ×3
coffeescript ×2
activemodel ×1
backbone.js ×1
grails ×1
grails-orm ×1
groovy ×1
javascript ×1
mongodb ×1
mongomapper ×1
rest ×1