Здесь я настроил приложение Rails с использованием Ajax, по какой-то причине я не могу получить ответ Ajax на erb View.Я думаю, <% = escape_javaScript%> в create.js - это что-то не так.
ниже - поток для публикации элемента.
- публикация "элемента" на edit.html.erb (Ajax)
- item_controller def create
- create.js
- / users / _item.html.erb (render Ajax)
edit.html.erb
<div class="content content-item">
<ol>
<%= form_tag('/items', method: :post, remote: true) do %>
<input type="text" name="text" pattern=".*\S+.*" required size="23" maxlength="23" autocomplete="off" class="header-btn">
<%= submit_tag "submit" ,:class => "header-btn" %>
<% end %>
</ol>
</div>
<div class="content content-item">
<ol>
<% if @items.present? %>
<div id="item-content">
<%= render partial: "users/item", collection: @items %>
</div>
<% end %>
</ol>
</div>
item_controller
def create
@item = Item.new(text: item_params[:text], user_id: current_user.id)
#Ajax
respond_to do |format|
if @item.save
format.html { redirect_to @item, notice: 'successfully'}
format.json { render :show, status: :created, location: @item }
format.js
else
format.html { render :new }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
create.js (основная точка)
$("<%= escape_javascript(render partial: '/users/item', collection:
@item ) %>").appendTo("#item-content");
//after submitting it makes textarea blank.
$('form').find("textarea,:text,select").val("").end().find(":checked").prop("checked", false);
_item.html.erb
<div class="idea-text">
<div class="checked-item_<%= "#{item_counter}"%>" >
<%= item.text %>
</div>
</div>//The rest is omitted
Размещенные данные полностью сохраняются в базе данных.и я вижу их на терминале.
Но не отображается на edit.html.erb.Я думаю, что create.js должно быть что-то не так.
терминал (после публикации)
Started POST "/items" for ::1 at 2019-02-25 11:32:55 -0800
Processing by ItemsController#create as JS
Parameters: {"utf8"=>"✓", "text"=>"hello world", "commit"=>"submit"}
User Load (1.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` =
3 ORDER BY `users`.`id` ASC LIMIT 1
Unpermitted parameters: utf8, commit
(0.4ms) BEGIN
SQL (40.8ms) INSERT INTO `items` (`text`, `user_id`, `created_at`,
`updated_at`) VALUES ('hello world', 3, '2019-02-25 19:32:55', '2019-
02-25 19:32:55')
(52.3ms) COMMIT
Rendered users/_item.html.erb (0.1ms)
Rendered items/create.js.erb (4.4ms)
Completed 200 OK in 151ms (Views: 22.9ms | ActiveRecord: 94.7ms)