ruby-on-rails - 使用 React Rails 显示关联的模型数据

标签 ruby-on-rails reactjs

我正在使用react-rails gem并且有两个模型:MessageUser 。用户 has_many :消息。

在我的message.js.jsx ,我想向该消息的用户显示。在常规 erb 中,它只是 <%= message.user.name %> 。我将如何在 message.js.jsx 中执行此操作组件?

最佳答案

可以将组件重命名为message.js.jsx.erb并在其中使用ERB,但它只会在Rails启动时编译一次。

一种更类似于 React 的处理方式是通过 AJAX 加载 componentDidMount 中的用户数据(如果使用 Flux,则为 Store)。

message.js.jsx

getInitialState: function() {
  return { user: { name: '' } };
},

componentDidMount: function() {
  $.getJSON('/users/'+ this.props.id +'.json', function(userData) {
    if (this.isMounted()) {
      this.setState({ user: userData })
    }
  });
},

您可以创建一个 Rails 端点以将 userData 作为 JSON 返回,如下所示:

users_controller.rb

def show
  @user = User.find(params[:id])
  respond_to do |format|
    format.html # default html response
    format.json { render json: @user.to_json(only: [:id, :name]) }
  end
end

参见Facebook's page on this了解更多详情

关于ruby-on-rails - 使用 React Rails 显示关联的模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519057/

相关文章:

ruby-on-rails - 运行 Rails + Sidekiq 的 2 台服务器使用相同的 redis 服务器会导致意外行为吗?

ruby-on-rails - 在 Rails 中,如何制作 :mobile views to fallback default views when not found?

ruby-on-rails - Errno::EACCES:运行捆绑时权限被拒绝,它命中 json 1.8.1,pg 0.17

javascript - 格式化 JavaScript 函数以将匹配项映射到时间组

javascript - Reactjs如何从另一个JavaScript文件导入常量数组

ruby-on-rails - Rails - mongoid - 使用键创建和覆盖?

ruby-on-rails - rails gem Make_flaggable 不保存到数据库

css - 如何在 React 中覆盖物化 css

javascript - 悬停背景根据所选主题更改

javascript - 声明一个异步函数