【问题标题】:Why is the check_box value not posting to the db为什么 check_box 值没有发布到数据库
【发布时间】:2023-04-02 11:25:01
【问题描述】:

当我提交表单时,“已发布”复选框的值未发布。

params3 = {"utf8"=>"✓", "authenticity_token"=>"i4SbblLJKIwba9yD30sDQCsir28/xdUxQZ90qYTNn0A=", "故事"=>{"姓名"=>"asdsaddsad", "post"=>"asdasdasdasd", "user_id"=>"13", "image_id"=>"1", "published"=>"1"}, "commit"=>"保存 故事”,“动作”=>“创建”,“控制器”=>“故事”}

def create
    @story = Story.new(story_params)

    respond_to do |format|
      if @story.save
        format.html { redirect_to @story, notice: 'Story was successfully created.' }
        format.json { render action: 'show', status: :created, location: @story }
      else
        format.html { render action: 'new' }
        format.json { render json: @story.errors, status: :unprocessable_entity }
      end
    end
  end

<%= form_for @story do |f| %>
        <%= f.text_field :name, placeholder: "Enter Title" %>
        <%= f.text_area :post, placeholder: "Enter Story" %>
        <br/>
        <%= f.hidden_field :user_id, value: current_user.id %>
        <%= f.hidden_field :image_id, value: @image.id %>
        <%= f.label "Publish this" %>
        <%= f.check_box :published %>
        <%= f.submit "Save Story" %>
    <% end %> 

【问题讨论】:

  • 显示你的表单,published的数据类型是什么?
  • 对不起,忘记用花括号包起来

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


【解决方案1】:

传递给操作的数据是story,如params3 哈希所示。此外,published 复选框正在发布。默认情况下,复选框将传递10 来表示真/假。 Rails 将相应地更新该值并接受10 作为复选框的值:

params3 = {"utf8"=>"✓", "authenticity_token"=>"i4SbblLJKIwba9yD30sDQCsir28/xdUxQZ90qYTNn0A=",  "**story**"=>{"name"=>"asdsaddsad", "post"=>"asdasdasdasd", "user_id"=>"13", "image_id"=>"1", "published"=>"1"}, "commit"=>"Save Story", "action"=>"create", "controller"=>"stories"}

因此,您的对象创建将需要使用这些参数。由于您使用的是 Rails 4,因此您需要使用 strong_parameters,您似乎就是这样。您需要验证 published 是您的参数哈希中的允许值。

def story_params
  params.require(:story).permit(...., :published, ...)
end 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 2016-10-21
    • 2017-03-21
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多