Rails 4:使用JavaScript / jQuery在用户输入上调用ruby额外的类方法

时间:2015-11-08 20:06:17

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-4

在我的Rails 4应用程序中,我创建了一个app/extra文件夹,我存储了一些自定义类方法。

例如,在上面的文件夹中,我有一个process文件夹,在此文件夹中,我有一个process_base.rb文件和一些其他process_method1.rbprocess_method2.rb,等

然后我在我的Post模型中声明这些方法,如下所示:

def process_post
  @process_method1 = Process::ProcessMethod1.new
  @process_method1.process self
  @process_method2 = Process::ProcessMethod2.new
  @process_method2.process self
end

最后,在我的Posts#show视图中,我使用了:

<%= @post.process_post %>

这很有效,因为我在加载帖子页面后得到了我需要的东西。

我现在想要做的是在Posts#new视图中利用这些方法,并使用JavaScript将它们实时应用到正在创建的@post

例如,假设process_method1计算@post.message中的字符数,我希望能够在用户输入他的消息时对字符进行计数,就像你能做的那样在撰写新推文时,请在Twitter上看到。

我不是一个非常有经验的Rails开发人员,我理解这个问题可能很广泛:我知道我不能指望详细代码的完整答案,但我会感谢任何指针,这将使我能够理解方向我应该进一步调查。

也许我想要实现的目标有一个名称,知道这个名字是什么,足以在线寻找相关资源。

或者,或许,直接在JavaScript中重写所有逻辑更有意义,而不是尝试使用JavaScript应用Ruby方法。

- - - -

更新the question here接近我想要实现的目标,除了我想知道我是否可以/应该重用我app/extra文件夹中定义的Ruby方法避免代码和逻辑重复。

- - - -

任何形式的帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

  

我现在要做的是在Posts#new视图中利用这些方法,并使用JavaScript将它们实时应用到正在创建的@post。

您可以创建响应JSON的新控制器操作,也可以使用respond_to教您现有的控制器操作以响应JSON和HTML。

另请参阅:Action Controller OverviewWorking with JavaScript in Rails

  

例如..在用户输入消息时计算字符数,非常类似于在撰写新推文时在Twitter上看到的内容。

在该示例中,我建议使用新的控制器操作,因为简单地计算字符与创建新推文完全不同。你甚至可能完全想要一个单独的控制器。