form_for数据未提交到mysql数据库

时间:2015-12-06 17:17:47

标签: ruby-on-rails ruby-on-rails-4

在我的视图页面中,我有一个类似

的表单
<%= form_for (@writereview), url:
    createreview_path(@writereview),:class=>"form-horizontal",method: :post do |f|  %>
<div class="form-inline">
<div class="form-group">
    <label for="clean">Cleanliness</label>
    <%= f.select(:clean, [['1', 1], ['1.5', 2], ['2',3],['2.5',4],['3',5],['3.5',6],['4',7],['4.5',8],['5',9]],{},{ :class => "form-control"}) %>
</div>
<div class="form-group">
    <label for="clean">Food</label>
    <%= f.select(:food, [['1', 1], ['1.5', 2], ['2',3],['2.5',4],['3',5],['3.5',6],['4',7],['4.5',8],['5',9]],{},{ :class => "form-control"}) %>
</div>

并在控制器操作中 -

def create
    @writereview = WriteReview.new(params[:writereview])
    if @writereview.save!
        redirect_to root_path
    end
end

private

def user_params
    params.require(:writereview).permit(:clean,:food,:locality,:behavior,:amenity,:likes,:dislikes,:comment)
end

2 个答案:

答案 0 :(得分:0)

使用以下代码:

def create 
   @writereview = WriteReview.new(user_params)
  if @writereview.save!
    redirect_to root_path
  end
end

答案 1 :(得分:0)

您没有使用您的化身,但这不会导致您的问题。

def create 
  @writereview = WriteReview.new(write_params)
end

private
def write_params 
  params.require(:writereview).permit(:clean,:food,:locality,:behavior,:amenity,:likes,:dislikes,:comment)
end 

我会看一下模型,数据库架构。你的模型不知道干净,食物,地点,行为,舒适,喜欢,不喜欢等等。我知道这是因为:

 INSERT INTO write_reviews (created_at, updated_at) VALUES ('2015-12-06 16:04:01', '2015-12-06 

没有记录到记录的字段,您的架构不知道这些字段,因此没有记录任何字段。