在rails app中集成jsx和erb

时间:2016-05-04 16:25:19

标签: ruby-on-rails reactjs

我读到erb可以和reactjs组件中的jsx一起使用,所以我想我会尝试使用该组件来渲染数据库对象。

这是组件:

public class ViewModel
{
    public DelegateCommand ExportCommand { get; }

    public ViewModel()
    {
        ExportCommand = new DelegateCommand(Export, CanDoExptor);
    }

    private void Export()
    {
        //logic
    }

    private bool _isCanDoExportChecked;

    public bool IsCanDoExportChecked
    {
        get { return _isCanDoExportChecked; }
        set
        {
            if (_isCanDoExportChecked == value) return;

            _isCanDoExportChecked = value;
            ExportCommand.RaiseCanExecuteChanged();
        }
    }

    private bool CanDoExptor()
    {
        return IsCanDoExportChecked;
    }
}

这是控制器:

class Item extends React.Component {
  render () {
    return (
      <% @items.each do |item| %>
        <div class="four wide column">
          <div class="card">
            <%= link_to item do %>
              <div class="item-image">
                <%= image_tag item.image.url(:thumb) %>
              </div>
              <div class="item-info">
                <h1><%= item.title %></h1>
                <span>$<%= item.price %></span>
              </div>
            <% end %>
          </div>
        </div>
      <% end %>
    );
  }
}

这会产生错误class PagesController < ApplicationController def index @items = Item.all respond_to do |format| format.html format.json { render json: @items.to_json} end end end

如果我删除模型循环,对象属性和link_to,jsx呈现,但显然我想要显示的数据丢失。

这是一种不好的方式吗?在我这看来应该在views目录中 - 而不是assets / javascript / components。

0 个答案:

没有答案