次のような足場を使用して Geddy アプリを作成しました。
geddy gen app test
geddy gen secret
geddy gen scaffold project title:string description:string screenshot:string url:string
これまでのところすべてが機能していますが、「追加」ビューを編集して、「スクリーンショット」入力を「ファイル」入力に変更したいと思います。
form.html.ejs :
<div class="control-group">
<label for="title" class="control-label">title</label>
<div class="controls">
<%- contentTag('input', project.title, {type:'text', class:'span6', name:'title'}) %>
</div>
</div>
<div class="control-group">
<label for="description" class="control-label">description</label>
<div class="controls">
<%- contentTag('input', project.description, {type:'text', class:'span6', name:'description'}) %>
</div>
</div>
<div class="control-group">
<label for="screenshot" class="control-label">screenshot</label>
<div class="controls">
<%- contentTag('input', project.screenshot, {type:'file', class:'span6', name:'screenshot'}) %>
</div>
</div>
<div class="control-group">
<label for="url" class="control-label">url</label>
<div class="controls">
<%- contentTag('input', project.url, {type:'text', class:'span6', name:'url'}) %>
</div>
</div>
add.html.ejs :
<div class="hero-unit">
<form id="project-form" class="form-horizontal" action="/projects" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>Create a new Project</legend>
<% if(params.errors) { %>
<div class="control-group">
<ul>
<% for(var err in params.errors) { %>
<li><%= params.errors[err]; %></li>
<% } %>
</ul>
</div>
<% } %>
<%- partial('form', {project: {}}) %>
<div class="form-actions">
<%- contentTag('input', 'Add', {type: 'submit', class: 'btn btn-primary'}) %>
</div>
</fieldset>
</form>
</div>
送信ボタンをクリックしたときの私のエラー:
Title: "title" is required..
私のコントローラー:
this.create = function (req, resp, params) {
var self = this
, project = geddy.model.Project.create(params);
if (!project.isValid()) {
this.respondWith(project);
}
else {
project.save(function(err, data) {
if (err) {
throw err;
}
self.respondWith(project, {status: err});
});
}
};
「プロジェクト」オブジェクトが空です...