submit
ラジオボタンを使用する代わりに、ブール属性を変更するボタンを使用する方法を知りたかったのです。
例として、「公開済み」および「未公開」の記事投稿のリストをページに表示し、モデルPost#index
の :is_published フィールドを true に設定する「公開」というボタンが必要だとします。Post
Rails 3.2.13でstrong_parametersを使用しています
私はPost
私が持っているだろうコントローラで考えていました
def index
@post = Post.recent
end
def update
@post = Post.find_by_slug(params[:id])
if params[:publish_button]
@post.is_published = true
@post.save
redirect_to root_path
end
end
private
def post_params
params.require(:person).permit(:body, :publish_button)
end
私のPost#index
見解ではform_for
、<%= f.submit 'Publish', name: publish_button %>
これがビューですPost#index
<%= form_for @post do |f| %>
<div class="field">
<%= f.label :body %><br />
<%= f.text_field :body %>
</div>
<div class="actions">
<%= f.submit %>
<%= f.submit_tag 'Publish Post', name: 'publish_post' %>
</div>
<% end %>
単純なモデルは次のとおりです
class Post < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
scope :recent, -> { order('updated_at DESC') }
end
しかし、私はエラーが発生していますRequired parameter missing: post
前もって感謝します。
更新 質問に対応するモデルとビューを追加しました。お役に立てば幸いです。