在我的RoR应用程序中向我的表添加了一个新列,但无法在其中添加详细信息

时间:2014-07-24 10:23:43

标签: ruby-on-rails sqlite

我是Ruby on Rails的新手,我正在练习使用它..我使用rails generate controller activity list add edit deleterails 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) 

提前致谢

3 个答案:

答案 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时,我的工作正常......:)