В моем приложении у меня есть модель Post
. Когда пользователь добавляет сообщение, он может выбрать 4 различных типа сообщения. По сути, каждый тип имеет различные поля в форме.
* Например: Тип 1 имеет только изображения, Тип 2 имеет только описание, Тип 3 имеет только заголовок, а Тип 4 имеет все активные поля.
В настоящее время, когда пользователь нажимает на Добавить новое сообщение , ему нужно выбрать тип сообщения (из модуса начальной загрузки) , и я добавлю param type
к ссылке и это будет добавлено к:
= f.hidden_field :post_type, value: params[:type]
По моему posts#new
У меня есть:
- if params[:type].present?
- if params[:type].to_i == 1
= render 'posts/form_partials/only_image'
- elsif params[:type].to_i == 2
= render 'posts/form_partials/only_description'
- elsif params[:type].to_i == 3
= render 'posts/form_partials/only_title'
- elsif params[:type].to_i == 4
= render 'posts/form_partials/all_fields'
Но мне не нравится то, как я это делаю в настоящее время, и я предпочитаю загружать правильный фрагмент из формы, когда они выбрали post_type
.
Я пытался получить new.js.erb
, но он вообще не срабатывает.
## PostsController#new
def new
@post = Post.new
respond_to do |format|
format.html
format.js
end
end
## new.js.erb (testing if I get contact)
$('button').click(function(){
console.log("New Action fired up");
});
Каков наилучший способ и что я могу улучшить, чтобы загрузить правильный фрагмент из формы, когда пользователь выбрал post_type
.
Любая помощь приветствуется!