Используйте скрытое поле, чтобы исправить мою проблему ... я понял ..
Привет всем,
Я новичок в рельсах, пытаюсь немного попрактиковаться.
Приложение, которое я пишу, пытается создать новую «публикацию». См. Представление и контроллер ниже.
Но это не работает так, как я ожидал ...
параметры передаются в функцию «сохранить», поля «post_at» нет ...
Как я могу это исправить ???
Спасибо
INFO: Parameters: {"authenticity_token"=>"Xc9VuvRL6GsUTaKyyNQxp8ovylEYwOMC+7hMcqdKizg=", "post"=>{"title"=>"First post", "content"=>"Write something"}, "commit"=>"save"}
Просмотр new_post.erb
<div class="post">
<% form_for @new_post, :url => { :action => "save" } do |f| %>
<p><%= f.error_messages %></p>
<br/>
<table>
<tr>
<td>Title</td>
<td><%= f.text_field :title %></td>
</tr>
<tr>
<td>Post at</td>
<td><%= @new_post.post_at %></td>
</tr>
<tr>
<td>Message</td>
<td><%= f.text_area :content, :cols => 100, :rows => 10 %></td>
</tr>
</table>
<br/>
<%= f.submit 'save'%>
<% end %>
</div>
Post Controler
class PostController < ApplicationController
def index
@all_posts = Post.find(:all)
render :action => "post"
end
def new
@new_post = Post.new
@new_post.post_at = Time.now
render :action => "new_post"
end
def save
@new_post = params[:post]
Post.create(@new_post)
redirect_to "/post"
end
end
Модель данных:
class Post
include DataMapper::Resource
storage_names[:default] = "Post"
property :id, Serial
timestamps :at
property :title, String, :required => true, :length => 500
property :content, Text, :required => true, :lazy => false
property :post_at, DateTime
end