Я пытаюсь связать адрес Места с сообщением, имеющим Сообщение, имеет место / место, отношение принадлежит_ к сообщениюЯ хотел бы сделать это в одном form_for, но столкнулся с проблемой при использовании атрибута :address
в Post
form_for.Как мне назначить этот атрибут?Вот мой код на странице new
.Это, очевидно, не работает (у меня также есть вложение изображения с использованием ActiveStorage):
Мой взгляд:
<%= form_for [@post] do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= f.label :description %>
<%= f.text_area :description %>
<%= f.label :address %>
<%= f.text_area :address %>
<%= f.file_field :image %>
<%= f.submit %>
<% end %>
<%= button_to "back to profiles", posts_path, method: "get" %>
Контроллер My Post:
class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]
def index
@posts = Post.all
end
def show
end
def new
@place = Place.new
@post = Post.new
end
def create
@post = Post.create(post_params)
redirect_to post_path(@post)
end
def edit
@place = Place.find(params[:id])
end
def update
@post.update(post_params)
redirect_to post_path(@post)
end
def destroy
@post.delete(post_params)
redirect_to posts_path
end
private
def find_post
@post = Post.find(params[:id])
end
def post_params
params.require(:post).permit(:title, :description)
end
end
И модели:
Почта:
class Post < ApplicationRecord
belongs_to :animal, required: false
belongs_to :user, required: false
has_one_attached :image
has_one :place
accepts_nested_attributes_for :place
end
Место:
class Place < ApplicationRecord
belongs_to :post
end