我试图做一个AJAX请求,形成一个link_to帮助器,它也包含params。
<%= link_to 'Bookmark', bookmarks_path(user_id: @user.id, week_number: @week_number, year: @answers.last.created_at.year), remote: true %>
我在控制台中遇到的错误是:
ActionController::ParameterMissing - param is missing or the value is empty: bookmark:
另一个问题是它会触发POST和GET请求,两者都返回404。 我的书签控制器:
def create
@bookmark = current_user.bookmarks.create(bookmark_params)
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
private
def bookmark_params
params.require(:bookmark).permit(:user_id, :week_number, :year)
end
这是不正确的做法,我如何解决我遇到的问题?
答案 0 :(得分:0)
要通过ajax创建书签,您需要制作如下形式: -
<%= form_for @bookmark, remote: true do |f|%>
<%= f.select :weak_number, collection_of_values %>
<%= f.select :year, collection_of_values %>
<% end %>
此外,没有必要允许user_id.So,从bookmark_params方法中删除。 current_user.bookmarks将在书签记录中设置user_id。