Вот фрагмент из формы, которую у меня есть. Назначение: title и: description работает отлично при создании модели «Post», однако, когда я пытаюсь назначить category_id как 1, он ничего не присваивает, category_id остается равным нулю.Как присвоить значение модели в Simple_Forms (Ruby on Rails)?
.form-group
= f.input :title, input_html: { class: 'form-control' }
.form-group
= f.input :description, input_html: { class: 'form-control' }
.form-group
= f.input :category_id, input_html: { class: 'form-control' }
При использовании Post.find_by (название: 'Pošty' (название я дал на этот пост)) я получаю ...
=> #<Post id: 13, title: "posty", description: "eyyyyyy", created_at: "2016-03-07 17:45:05", updated_at: "2016-03-07 17:45:05", category_id: nil>
Обратите внимание, как category_id: ноль? Он должен равняться числу, которое было присвоено в формах, но оно не работает.
Вот фрагмент от Schema.rb. Он содержит 2 модели, категории и должности, сообщения относятся к категории.
create_table "categories", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "posts", force: :cascade do |t|
t.string "title"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "category_id"
end
add_index "posts", ["category_id"], name: "index_posts_on_category_id"
Вот мой posts_controller код
class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]
def index
@posts = Post.all.order("created_at DESC")
end
def show
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save
redirect_to @post, notice: "Successfully created"
else
render 'new'
end
end
def edit
end
def update
if @post.update(post_params)
redirect_to @post, notice: "Post was successfully updated"
else
render 'edit'
end
end
def destroy
@post.destroy
redirect_to root_path
end
private
def post_params
params.require(:post).permit(:title, :description)
end
def find_post
@post = Post.find(params[:id])
end
end
Добавьте свой код 'posts_controller.rb'. – jljohnstone
Извините, я забыл. Я по-прежнему новичок в этом. –
Получил это, я исправил его. Спасибо за напоминание. –