ajax请求通过link_to与params

时间:2015-12-02 13:57:35

标签: ruby-on-rails

我试图做一个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

这是不正确的做法,我如何解决我遇到的问题?

1 个答案:

答案 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。