我是Ruby on Rails的新手,我正在练习使用它..我使用rails generate controller activity list add edit delete
和rails generate model activity name:string summary:text
创建了一个应用程序并运行良好..
但是当我使用sqlite3向表newapp添加一个列并尝试添加新记录时... everyhting工作正常..没有错误但是日期没有保存..为什么会发生这种情况?我认为这可能是一个非常小的问题,但是我工作3个小时以来就无法理解它...任何帮助表示赞赏
这是我控制器的代码
def create
@activity_detail = Activity.new(activity_detail_params)
respond_to do |format|
if @activity_detail.save
format.html { redirect_to activity_new_path, notice: 'Activity details were successfully saved.' }
format.json { render :view, status: :created, location: @activity_detail }
else
format.html { render :new }
format.json { render json: @activity_detail.errors, status: :unprocessable_entity }
end
end
end
def activity_detail_params
params.require(:activity).permit(:name, :summary, :dated)
end
(我补充说:修改我的表后的日期)
我的观看代码
<%= form_for :activity, url: activity_create_url do |f| %>
<div class="field">
<%= f.label :name %> * <%= f.text_field :name , class: "text" %>
</div>
<span id="title-err"></span>
<div class="field">
<%= f.label :date %> * <%= f.text_field :dated , class: "text" %>
</div><span id="date-err"></span>
<div class="field">
<%= f.label :summary %> <%= f.text_area :summary , class: "text" %>
</div>
<div class="actions">
<%= link_to 'Cancel', activity_view_path, class:"link" %> <%= f.submit %>
</div>
<% end %>
服务器日志
Started GET "/assets/jquery-ui/ui-bg_glass_75_dadada_1x400.png" for 127.0.0.1 at
2014-07-24 16:34:34 +0530
Started POST "/activity/create" for 127.0.0.1 at 2014-07-24 16:34:42
+0530 Processing by ActivityController#create as HTML Parameters: {"utf8"=>"√", "authenticity_token"=>"1WrRLrAEdga7IiZzf11hec2dv/yzs
+Qq//Q3U9B9urw=", "activity"=>{"name"=>"new", "dated"=>"07/23/2014", "summary"=> "asf"}, "commit"=>"Save Activity"} Unpermitted parameters:
dated (0.0ms) begin transaction SQL (0.0ms) INSERT INTO
"activities" ("created_at", "name", "summary", "updat ed_at") VALUES
(?, ?, ?, ?) [["created_at", "2014-07-24 11:04:42.671875"], ["na me",
"new"], ["summary", "asf"], ["updated_at", "2014-07-24
11:04:42.671875"]] (156.3ms)
提前致谢
答案 0 :(得分:0)
确保您已按照以下步骤操作:
rails g migration AddDateToActivity
然后打开该文件添加列:
add_column :activities, :date, :date
然后通过控制台:
rake db:migrate
重新启动服务器
修改强>
确保更改转到rails console
并查看
Activity.column_names
答案 1 :(得分:0)
“日期”是Rails中的保留字,因此可能与某些功能冲突。为该属性尝试不同的名称。从文档的角度来看,无论如何,这本来都是一个糟糕的名字。
答案 2 :(得分:0)
我的代码中的一切都很好..问题是我不知道Ruby对日期格式如此特别。当我给出格式为yyyy-mm-dd
时,我的工作正常......:)