Rails模板将值设置为字符串数组

时间:2016-04-12 14:19:32

标签: ruby-on-rails angularjs

我有一个角度模块,我设置了几个字符串。我也想在模板中设置一个字符串数组。

application.html.erb

  <script type="text/javascript">
    angular.module('userFromServer', [])
      .service('currentUser', function() {
        <% if logged_in %>
          this.name = '<%= @User.name %>';
          this.friends = '<%= @User.profile.friends_by_uuid %>';
        <% end %>
      })
  </script>

控制器

  def friends_by_uuid
    self.friends.map{|x| "puser_#{x.uuid}"} # also tried adding .to_json
  end

然而,输出似乎有一些逃避问题。

"[&quot;puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b&quot;, &quot;puser_ec7d2918-d514-4c42-91fc-641ed2958fcd&quot;]"

 var desired_output = "["puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b", "puser_ec7d2918-d514-4c42-91fc-641ed2958fcd"]

如何在rails模板中渲染字符串数组?

1 个答案:

答案 0 :(得分:0)

您不应该在视图或控制器中放置逻辑:Is it bad to have fat views in rails?预计会有胖模型。所以解决方案是在模型/使用辅助函数中将数组块化,将其提供给控制器,最后在视图中使用。因为不知道你想要什么,这是我能做的最多。

例如:

# controller
def index
  @ids = MyModel.split(params[:ids]) # suppose params[:ids] are the data coming in
end

# view
<% @ids.each do |id| %>
# ...
<% end %>

对于ruby来处理字符串,许多帖子可能有所帮助。例如,here