Создать сообщение с местоположением (отношение has_one, own_to) в Rails form_for? - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь связать адрес Места с сообщением, имеющим Сообщение, имеет место / место, отношение принадлежит_ к сообщениюЯ хотел бы сделать это в одном 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
...