Rails,使用AJAX创建对象

在Rails应用程序中,有一个用户模型,而用户有很多单词。有一个包含许多项目的表(在项目控制器中显示动作),每个项目由具有单词和链接(将用于创建记录)的行表示。如何使用AJAX根据行数据创建与用户关联的单词记录?例如,该行包含单词“ test”,并且单击链接时,应创建新的Word记录并将其附加到当前用户的单词之后。

我试图给每个链接remote: true属性并在show.js.erb中发出AJAX请求(因为链接在show动作中),每次单击该链接时都会调用它,但是无法找出单击哪个链接,因此我无法从该行中提取任何信息。

AJAX请求如下所示:

$.ajax({
  type: "POST",
  url: "/users/<%= current_user.id %>/words/",
  data: { word: { word: word, translation: translation, context: context } },
});

在WordsController中创建动作:

def create
  @words << Word.new(filter_params)
  redirect_to user_words_path
end

任何帮助将是巨大的。

Gwcoffey

在rails中,您可以放置remote: true任何链接以使其ajax-y。就您而言,这似乎是问题在于您没有到create action的合法链接。因此,您需要的是:

首先:Words控制器中的create动作:

def create
   @word = Word.new(word_params)
   @word.user = current_user
   @word.save!
end

...

private
def word_params
   params.require(:word).permit(:word, :translation, :context)
end

第二:指向页面上的create操作的链接:

<%= link_to(
   "Test",
   words_path(word: "Test", translation: "foo", context: "bar"),
   method: :post,
   remote: true 
) %>

要点是:

  1. 您链接到words_path,这是单词资源的帮助方法。
  2. 您将方法设置post为通知您的控制器您要执行该create操作。

您可以通过运行找到辅助程序和方法到控制器操作的映射rake routes

一些警告:

  1. 我确实不太了解您的模型,但是从您的问题来看,就像Word包含单词,翻译和上下文列以及与用户的关联一样。根据需要调整以上代码。
  2. 您可能想要使创建操作比上面显示的更加智能。如果您的验证失败,我的版本只会引发异常。我把它留给你,让它做你需要的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails,使用AJAX创建对象

来自分类Dev

Rails:为什么不能使用由ajax创建的对象来触发javascript?

来自分类Dev

在rails中使用ajax获取对象值

来自分类Dev

使用 ajax 的 Ruby on Rails 渲染对象

来自分类Dev

使用相同形式创建Rails对象

来自分类Dev

使用相同形式创建Rails对象

来自分类Dev

使用 JSON Rails 创建多个对象

来自分类Dev

在 Rails 中使用模态创建对象

来自分类Dev

Rails分步对象创建

来自分类Dev

javascript:使用ajax字符串创建对象

来自分类Dev

Rails使用ajax调用更新多态对象的部分表

来自分类Dev

使用ajax和rails删除和更新关联模型的对象

来自分类Dev

使用AJAX和Rails返回html可以打印出对象

来自分类Dev

Rails使用ajax调用更新多态对象的部分表

来自分类Dev

Rails使用参数创建对象-不需要

来自分类Dev

Rails:使用Postgres创建对象时,重复ActiveRecord :: RecordNotUnique?

来自分类Dev

Rails-使用嵌套的静态路由创建对象

来自分类Dev

Rails使用参数创建对象-不需要

来自分类Dev

Rails使用Ajax创建动作而没有形式

来自分类Dev

使用Ajax创建记录时,Rails不会渲染布局

来自分类Dev

Rails从对象创建路线

来自分类Dev

从ajax返回的Json对象创建Json对象

来自分类Dev

使用forEach创建对象

来自分类Dev

使用strong_params在Rails 4控制器中创建两个对象

来自分类Dev

如何使用嵌套资源在Rails 4中创建与用户关联的对象?

来自分类Dev

Ruby on Rails使用Rspec功能测试,获取在测试过程中创建的对象的ID

来自分类Dev

使用Rails在带有Restforce的Salesforce中创建具有关系的对象

来自分类Dev

使用strong_params在Rails 4控制器中创建两个对象

来自分类Dev

使用Rails在带有Restforce的Salesforce中创建具有关系的对象

Related 相关文章

  1. 1

    Rails,使用AJAX创建对象

  2. 2

    Rails:为什么不能使用由ajax创建的对象来触发javascript?

  3. 3

    在rails中使用ajax获取对象值

  4. 4

    使用 ajax 的 Ruby on Rails 渲染对象

  5. 5

    使用相同形式创建Rails对象

  6. 6

    使用相同形式创建Rails对象

  7. 7

    使用 JSON Rails 创建多个对象

  8. 8

    在 Rails 中使用模态创建对象

  9. 9

    Rails分步对象创建

  10. 10

    javascript:使用ajax字符串创建对象

  11. 11

    Rails使用ajax调用更新多态对象的部分表

  12. 12

    使用ajax和rails删除和更新关联模型的对象

  13. 13

    使用AJAX和Rails返回html可以打印出对象

  14. 14

    Rails使用ajax调用更新多态对象的部分表

  15. 15

    Rails使用参数创建对象-不需要

  16. 16

    Rails:使用Postgres创建对象时,重复ActiveRecord :: RecordNotUnique?

  17. 17

    Rails-使用嵌套的静态路由创建对象

  18. 18

    Rails使用参数创建对象-不需要

  19. 19

    Rails使用Ajax创建动作而没有形式

  20. 20

    使用Ajax创建记录时,Rails不会渲染布局

  21. 21

    Rails从对象创建路线

  22. 22

    从ajax返回的Json对象创建Json对象

  23. 23

    使用forEach创建对象

  24. 24

    使用strong_params在Rails 4控制器中创建两个对象

  25. 25

    如何使用嵌套资源在Rails 4中创建与用户关联的对象?

  26. 26

    Ruby on Rails使用Rspec功能测试,获取在测试过程中创建的对象的ID

  27. 27

    使用Rails在带有Restforce的Salesforce中创建具有关系的对象

  28. 28

    使用strong_params在Rails 4控制器中创建两个对象

  29. 29

    使用Rails在带有Restforce的Salesforce中创建具有关系的对象

热门标签

归档