我有一个角度模块,我设置了几个字符串。我也想在模板中设置一个字符串数组。
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
然而,输出似乎有一些逃避问题。
"["puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b", "puser_ec7d2918-d514-4c42-91fc-641ed2958fcd"]"
var desired_output = "["puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b", "puser_ec7d2918-d514-4c42-91fc-641ed2958fcd"]
如何在rails模板中渲染字符串数组?
答案 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。