如何让我的Vue组件访问Rails应用程序中的活动记录对象?

时间:2019-04-03 21:04:46

标签: ruby-on-rails ruby vue.js controller backend

我继承了一个基于Rails的项目,该项目使用Vue作为其前端。所有视图都是通过Vue呈现的,但是布线和模型遵循标准的Rails MVC模式。

我想呈现一些存储在Vue组件内Active Record中的对象。

我还想通过Active Record数据库在Vue中构建具有CRUD功能的表单。

当我将实例变量从Rails控制器传递到Vue视图时,它不起作用。

#controller.rb
def index
  @projects = Project.all
end

#view.html.erb
<% @projects.each do |e| %>
  <div><%= e.information %></div>
<% end %>

我必须像这样直接在视图内部直接调用活动记录:

#controller.rb
def index
end

#view.html.erb
<% @projects = Project.all %>
<% @projects.each do |e| %>
  <div><%= e.information %></div>
<% end %>

总而言之,我需要回答的两个问题是:
1.如何将活动记录对象传递到vue组件中并在前端进行渲染?
2.如何编写Vue表单以创建,编辑和更新数据库中的活动记录对象?

1 个答案:

答案 0 :(得分:1)

如果您希望能够真正使用VueJS中的数据,则应将数据转换为JSON并将其加载到vuejs数据块中。

这样,您可以做类似

的操作
<div v-for="project in projects">{{project.information}}</div>

然后您可以在vue中更新此数据,它将自动更改页面上的文本。